トップ 検索 一覧 差分 ソース ヘルプ RSS ログイン

今更MinGW 2009.06(2) 方針

今更MinGW 2009.06(2) 方針

全体の方針と基礎知識について述べる。

 導入方法

2008年春版ではインストーラを使用したが、今回は基本的に使用しない。

 ディレクトリ構成

ディレクトリ構成は非常にシンプルにする。MSYSの基礎講座になってしまうので詳細は割愛するが、大まかに以下のようになる(重要なディレクトリのみ記載)。

C:\msys/              MSYSルートディレクトリ(MSYSから/として見える)
    +-- _felidlabo/   猫研パック独自のファイル群を格納する。
    |    +-- gcc      gccのアーカイブを格納する。
    +-- bin           MSYSコマンドを格納する。
    +-- etc           MSYS環境設定ファイル
    +-- home          ユーザのディレクトリ(マイドキュメントのようなもの)
    +-- include       MSYS関係のヘッダファイル(*.h)を格納する
    +-- lib           MSYS関係のライブラリ(*.a)を格納する
    +-- mingw         MinGWのディレクトリ
         +-- bin      gccなどのMSYSに依存しないMinGWの実行ファイルを格納する。
         +-- include  システムヘッダファイル(*.h)を格納する。
         +-- lib      システムライブラリ(*.a)を格納する。
         +-- mingw32  binutilsの構成の関係でできる重複ディレクトリ。

猫研パックではgccを/_felidlabo/gccに格納しているが、好きな場所に置いて構わない。このほかにdocやshareといったディレクトリが存在する。

注意すべき事項

//mingwで重複するディレクトリがあるが、MSYSに依存しない(msys-1.0.dllが不要な)ものは/mingw以下に入れると考えると良い。Unix的コマンド群を除いた純粋なコンパイラ環境(configureやinstallを必要としない単純なmakeが可能なレベル)としてのMinGWはMSYSなしで動作するようになっており、これらは切り離せるように/mingw以下に格納すべきだ。MSYSに依存するファイルは大概アーカイブファイル名にMSYSが含まれる(例:make-3.81-MSYS-1.0.11-2.tar.bz2)のである程度の判断基準になる。極端な話、MSYSに依存する実行ファイルを作成したいことはほぼないので、/includeと/libは不要では無いかと思う。

Unix的環境であり、かつ基本的に英語環境であるMSYSは空白や日本語を含むパスの取り扱いがよいとは言えない。C:\msysにこだわる必要は無いが、トラブルを避ける意味で空白や日本語を含むパスにはすべきでないだろう。

また、MSYSは/etc/fstabで/mingw以外の場所に置いたMinGWを/mingwにあるように見せかけることができるが、特段わざわざ別の場所に置く必要性もないので、猫研パックでは直接/mingwに配置している。

 バイナリ vs ソース

猫科研究所パックでは、バイナリで取得するものとソースで取得するものを織り交ぜている。

基本的には、MinGWのページからMinGW用としてバイナリで取得できるものは手間を省くためバイナリで得るが、バイナリに問題があるものやバージョンが古いもの、MinGW以外のページから得るものは、MinGW向けになっているとは限らないため、ソースからビルドする。

最終更新時間:2009年06月22日 11時42分14秒