MinGW クロスコンパイル

[Fedora 11]

Fedora 11 から正式にパッケージが提供されるようになった MinGW クロスコンパイル環境について、関連する情報を紹介します。


MinGW について

MinGW (Minimalist GNU for Windows) は、GCC(GNU コンパイラコレクション)およびネイティブな 32bit Windows プログラムを生成するためのヘッダーファイルとインポートライブラリを揃えたプログラミング環境です。

具体的には、GCC(gcc, g++ など)と binutils(バイナリユーティリティ:アセンブラ as や、リンカ ld など)、mingw-runtime(Windows の C ランタイムライブラリにアクセスするためのヘッダーライブラリなど)と w32api(Win32 API にアクセスするためのヘッダーファイル群)、それに makegdb(シンボリックデバッガ)などの総称です。

MinGW の環境では、Windows 純正の C ランタイムライブラリ MSVCRT.DLL を使用して ISO C に準拠したコンソールモードのアプリケーションを作成できます。また w32api パッケージを併用して、Windows の Win32 API にアクセスするアプリケーションを作成することができます。

ところで MinGW ってどのように発音するのでしょう?開発プロジェクトのメーリングリストによると、正式な発音は定義されていないということです。ちなみに、プロジェクト管理者の Earnie Boyd 氏は「みんぢぃだぶりゅう」と呼んでいるそうです。

ページ先頭に戻る

Fedora の MinGW クロスコンパイル環境

パッケージの名付規則

Fedora で提供される 32bit の MinGW クロスコンパイル用パッケージの名前は、mingw32- で始まるよう統一されています。

基本パッケージ

MinGW クロスコンパイル環境の基本パッケージは、クロスコンパイル環境のディレクトリ構造や、関係する RPM 用マクロが定義されているファイルシステム (filesystem)、MinGW ランタイムライブラリと Win32 API、バイナリユーティリティ (binutils) そして GNU コンパイラ・コレクション (gcc) です。

Table: 基本パッケージ

パッケージ名 説  明
mingw32-filesystem クロスコンパイル環境のディレクトリ構造や、関係する RPM 用マクロを定義。
mingw32-runtime MinGW のランタイムおよび開発環境。
mingw32-w32api Win32 API へリンクするのに必要な、パブリックドメインのヘッダーファイル群。
mingw32-binutils クロスコンパイル用バイナリユーティリティ。
mingw32-gcc クロスコンパイル用 GNU コンパイラ・コレクション。

ファイルシステムのレイアウト

Fedora における MinGW クロスコンパイル環境が使用する領域(ディレクトリ構造)は、以下の様に定義されています。

[root]
  |
  +- etc
  |   |
  |   +- rpm
  |       |
  |       +- macros.mingw32
  |
  +- usr
      |
      +- bin   - クロスコンパイラ・ツールチェインへのリンク
      |   |
      |   +- i686-pc-mingw32-cpp
      |   +- i686-pc-mingw32-gcc
      |   +- i686-pc-mingw32-g++
      |   +- ...
      |
      +- lib
      |   |
      |   +- rpm
      |       |
      |       +- mingw32-defs
      |       +- mingw32-find-provides.sh
      |       +- mingw32-find-requires.sh
      |
      +- i686-pc-mingw32  - MinGW ツールチェインとバイナリ
         |
         +- bin  - クロスコンパイラ・ツールチェイン
         |   |
         |   +- cpp
         |   +- gcc
         |   +- g++
         |   +- ...
         |
         +- lib  - クロスコンパイラ・ツールチェインのサポートライブラリ
         |
         +- sys-root  - クロスコンパイルされたバイナリのルート
             |
             +- mingw
                 |
                 +- bin     - クロスコンパイルされたバイナリおよび DLL
                 +- doc     - ドキュメント
                 +- include - インクルードファイル
                 +- lib     - クロスコンパイルされたスタティックライブラリなど
                 |   |
                 |   +- pkgconfig  - pkg-config の定義ファイル
                 |
                 +- share
                     |
                     +- man
ページ先頭に戻る

関連サイト

MinGW Special Interest Group
Fedora の MinGW クロスコンパイル環境開発プロジェクトのサイトです。
MinGW Cross Compiler Project
ビットウォークで、Fedora のプロジェクトがカバーしていない部分をサポートしています。
MinGW | Minimalist GNU for Windows
本家 MinGW プロジェクトサイトです。
ページ先頭に戻る
(C) 2009 - 2017 Fuhito Suguri
クリエイティブ・コモンズ・ライセンス
This site by Fuhito Suguri is licensed under a Creative Commons 表示 - 継承 3.0 Unported License.
Ads by Sitemix