Backup of 開発環境を整える/MinGW (12) Back


Back to History list

*&tooltip(MinGW){Minimalist GNU for Windows};)による開発環境の構築 [#p2f4f668]
#contents
#hr

参考:
-http://d.hatena.ne.jp/saiten/20070325
-http://source.bungie.org/wiki/index.php/Cross-build_Instructions

*MinGWの環境構築 [#ybfaf9e0]
[[MinGW>http://www.mingw.org/]]のサイトから以下のファイルをダウンロードしてインストール。
-[[Automated Installer>http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=240780]] - MinGWのコアシステム
-[[MSYS Base System>http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=24963#pkg0_2]] - MinGWのインターフェースMSYS。Current Releaseの MSYS-x.x.xx.exe(xはバージョン)という名前のファイルをインストール
-[[MSYS Supplementary Tools>http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879#pkg0_2rel0_0]]
- MSYS用の開発ライブラリ。Current Releaseの msysDTK-x.x.x.exe(xはバージョン)という名前のファイルをインストール
-wget

まず、MinGWとMSYSをインストールする。MSYSをインストールすると、
 C:\msys\1.0\home\ユーザ名
の位置がMSYSから見た基準のディレクトリになる。

ここに、[[MinGW Utilities: wget>http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=20506]] をダウンロードし、解凍する。MSYSを起動して、wgetを解凍したディレクトリに行き、
 ./configure
 make install
と入れる。これでwgetがインストールされる。

手動でビルドするのが面倒だったら、[[ここ>./#pack]]へ
#hr

次に、[[Cross-Hosted MinGW Build Tool>http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=12644]]をダウンロードする。これは、自動開発環境構築シェルスクリプトである。先ほどのディレクトリに解凍し、その中のx86-mingw32-build.sh.confを修正する。
 #
 # 4) Package versions, from which the compiler will be built.
 #
      assume GCC_VERSION                   3.4.5-20060117-1
      assume BINUTILS_VERSION              2.18.50-20080109-2
      assume RUNTIME_VERSION               3.14
      assume W32API_VERSION                3.11
ここのバージョンを、下記のアドレスを参考に最新の物に書き換える。
-[[GCC Version3>http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=82723]] - コンパイラ
-[[GNU Binutils>http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=11290]]
-[[MinGW Runtime>http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=11598]] - ランタイム
-[[MinGW API for MS-Windows>http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=11550]] - Win32API

注意したいのは、この自動インストーラーで認識できるファイル名は、''末尾が-src.tar.gzのものに限られる''と言うことである。従って、たとえばGCCの場合最新のバージョンは、 3.4.5-20060117-3であるが、SourceForge上には、 gcc-g++-3.4.5-20060117-3-src.tar.gzというファイルは存在しないためこの設定は誤りと言うことになる。したがって、ここの設定は、旧バージョンの3.4.5-20060117-2が正しいことになる。

設定を終えたら、MSYSからx86-mingw32-build.shを起動する。あとはすべてリターンで問題ない。ダウンロードとビルド、インストールを自動で行ってくれる。

これで、開発環境が構築された。

**MSYSがVista 64で正常に動作しない [#x87e974a]
msysは、Windows Vista x64使用時にCurrent Release版だとウィンドウが128個勝手に開いて閉じて正常に動作しないバグが存在する。そこで、[[MSYS-1.0.11>http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=24963#showfiles_download_file_pkg0_1rel0_22]]の最新版(msysCORE-1.0.11-yyyymmdd.tar.gz)をダウンロードし、msys\1.0のディレクトリの内容と入れ替える。

**Vistaでinstall実行時にPermission Deniedエラーが多発する [#d609ac11]
これは、Vistaの&tooltip(UAC){User Access Control};が原因です。管理権限で実行しましょう。

以下のようなxxx.exe.manifestファイルを用意して、mt.exeでマニフェストファイルを作成して読み込ませるといった方法もありますが、一番手っ取り早いのは、コントロールパネル>ユーザアカウント>ユーザアカウントの制御の有効化無効化をクリックして、UACそのものを無効化してしまえばいいわけです。

#code(xml){{
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0"
     processorArchitecture="X86"
     name="install.exe"
     type="win32"/>
  <!-- Identify the application security requirements. -->
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"/>
        </requestedPrivileges>
       </security>
  </trustInfo>
</assembly>
}}

*SDLのインストール [#na9beb9a]
-SDL
-SDL_image
-SDL_ttf
--freetype
-SDL_net
-jpeg6
-libpng
-smpeg
-zlib

[[Win32 + MSYS + MinGW 5.1.3 で SDL の開発環境を構築>http://cefiro.homelinux.org/topics/SDL/setup-win32-mingw.html]]にビルド済みのバイナリがおかれているので、直接MinGWのbinフォルダなどに上書きしても問題ない。ただし、sdl-confとsmpeg-confのパスは、/c/mingwに変更しておくこと。

**[[SDL_sound>http://icculus.org/SDL_sound/]][#v8529560]
-[[libogg のインストール>http://cefiro.homelinux.org/resources/doc/ogg/install-mingw32-04.html]]
-[[libvorbis のインストール>http://cefiro.homelinux.org/resources/doc/vorbis/install-mingw32-02.html]]

libvorbisをインストールする場合、configureを実行するときには以下のコマンドを入れること。
 LDFLAGS="-L/usr/local/lib" LIBS="-logg" configure --prefix=/usr/local

で、SDL_soundをインストール。以下から最新の安定版をダウンロードしてインストール。
-http://icculus.org/SDL_sound/downloads/

ビルドするときは以下のシェルスクリプトを使えばいいんじゃないかな?
 #!/bin/sh
 CFLAGS="-I/usr/local/include/smpeg -I/usr/local/include/ogg -I/usr/local/include/vorbis -I/usr/local/include/speex" \
 LIBS="-lstdc++" ./configure --prefix=/usr/local --enable-smpeg --enable-ogg --enable-vorbis --enable-speex \
 --disable-midi --disable-mpglib
 sed -ie s/playsound//g Makefile

//**[[Lua>http://lua.org/]] [#t2e75516]
//ダウンロードページから最新版を落としてきて、解凍したら以下のコマンドを実行
// make mingw
// make install
//で、
// make generic
//を実行すると、srcフォルダにlua51.dllがつくられる。これをc:\msys\1.0\local\binに移動。

//ダメだった場合は、&ref(http://lua-users.org/files/wiki_insecure/build/mingw-msys/lua51w5mingw.tar.gz);を入れ替えてMake install

//(現在のAOは内部にLuaのソースを持っているために不要:by pfhore)

**[[boost>http://boost.org/]] [#u72a2688]
スタブ

**smpeg [#b18040c2]
BGMで使用?

[[Win32 + MSYS + MinGW 5.1.3 で SDL の開発環境を構築>http://cefiro.homelinux.org/topics/SDL/setup-win32-mingw.html]]からビルド済みをダウンロードできる。

TortoiseSVNなどで、svn://svn.icculus.org/smpeg/trunkから、smpegのソースをダウンロード。
 cd smpeg
 ./autogen.sh
 ./configure --disable-opengl-player
DLLを生成する場合は&ref(http://johnnypops.demon.co.uk/mingw/smpeg-makefile.patch);をダウンロードして、smpegディレクトリに設置し、
 patch -p0 Makefile < smpeg-makefile.patch
を実行。

ビルド&インストール
 make install

***注意 [#c2bd1ba8]
どういうわけか、smpeg.dllがlibディレクトリにある。これをbinディレクトリに移動すること。

**speex [#nfa37a72]
このライブラリは、対戦時のチャットで使用する。これがないと、マイクロフォン周りのビルドでこける。
 configure
 make; make install

**Iconv [#j996ec89]
AlephOneJP1.3x以上のビルドに必要。

http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879

から、libiconvをダウンロードしてインストール。

注意:AlephOneJPビルド時に、MakefileのCSFLAGやLDFLAGに-liconvを追記すること。

*開発環境パック [#pack]
ここよりダウンロード可能。面倒な人は、上記の方法で、MinGWとMSYSをインストールした後、このサイトから、MinGW-3.9.zipをダウンロードし、このアーカイブに含まれているMinGWディレクトリの中身をMinGWのインストールディレクトリ(c:\MinGW)に上書きコピーする。
-[[MinGW Distro - nuwen.net>http://nuwen.net/mingw.html]]

これだけで、必要なライブラリの大半はインストールされる。ただし、以下のファイルはこのアーカイブに含まれていない。このうち、のこりは手動でインストール。

-&ref(speex-1.2rc1-bin-mingw.zip.tgz); - [[speex>http://www.speex.org/downloads/]]
-[[libsndfile>http://www.mega-nerd.com/libsndfile/]]
-&ref(libmad-0.15.1b-bin-mingw.zip.tgz); - [[libmad>http://www.underbit.com/products/mad/]]

**注意 [#d5ea2c46]
最新版のnuwen.netのライブラリのsdl-configのパスは間違っています。必ず、prefixを/c/mingwに変更すること。