mingwrt-3.21.1をMinGW GCC-3.4.5でビルドする(お試し)

2015/09/22

単にビルドエラーが出ないことを確認しただけです。出来上がった物が本当に使えるかどうか、テストは一切していません。


  1. MinGW gcc-3.4.5のインストールは別途記事に譲ります。とりあえず mingwrt-3.18 で稼働するようにしておく。
  2. 公式サイトから mingwrt-3.21.1-mingw32-src.tar.xz を取得し、展開する。xz書庫をサポートしているtar(手近には、ここ数年のW32TeXのtarが使用可)における書庫形式指示は -J
    tar -xJvf mingwrt-3.21.1-mingw32-src.tar.xz
  3. コマンドプロンプトを起動し、展開先のディレクトリ (READMEChangeLog がある場所)へ移動。
  4. 必要に応じ、起動したコマンドプロンプト内でgcc-3.4.5とMSYSを使えるようにPATHなどの設定をする。※Windowsコントロールパネルの環境変数で設定済みの場合はそれによればよい。
    ここではMinGW gcc-3.4.5を C:\MinGW-gcc3 にインストールしてあると仮定している。これはMinGWインストーラーのデフォルトなら C:\MinGW なので、適宜読み替えること。また、パスデリミタの \/ の違いに注意。
    path C:\MinGW-gcc3\bin;C:\MinGW-gcc3\msys\1.0\bin;%PATH%
    set LIBRARY_PATH=C:/MinGW-gcc3/lib/
    set INCLUDE_PATH=C:/MinGW-gcc3/include/
    [2016/01/23] 訂正。INCLUDE_PATHの設定は不要。インストール先フォルダから自動認識されている。LIBRARY_PATHもおそらく設定不要。

    cc1.exeの中を見たところ、GCC-3.4.5はINCLUDE_PATHを見ておらず、インクルードパスを指定するなら言語ごとの指定が必要のようです。
    あえて指定するなら(挙動が微妙に変わるのでおすすめしませんが):
    path C:\MinGW-gcc3\bin;C:\MinGW-gcc3\msys\1.0\bin;%PATH%
    set LIBRARY_PATH=C:/MinGW-gcc3/lib/
    set C_INCLUDE_PATH=C:/MinGW-gcc3/include/
    set CPLUS_INCLUDE_PATH=C:/MinGW-gcc3/include/

  5. MSYS(bashおよびその他のunixコマンドクローンツール群)を使ってconfigureする。
    bash configure
    ただし、このconfigureはw32apiのソースツリーを探索してそれ関係のインクルードパスを設定するようになっており、無い場合は config.status に必要な設定が入らない。このままmakeを実行すると crt1.c:22:21: warning: windows.h: No such file or directory とか、いろいろとエラーがあると言われる。
  6. 本来はw32apiのソース(w32api-3.17-2-mingw32-src.tar.lzma)を用意するのが筋だが、必要なのはいくつかのヘッダファイルだけのため、既に w32api-3.17-2-mingw32-dev.tar.lzma を導入してある状態のgcc-3.4.5のインクルードパスで代用できるようだ。そこで、configureが出力した config.status ファイルの中の
    S["w32api_srcdir"]=""
    を手動で
    S["w32api_srcdir"]="C:/MinGW-gcc3"
    に変更する。
  7. makeを実行する。修正した config.status が反映されてビルドが通る。
    make

以上。
なお、出来上がったものの make install は、試していません。多分だめなので、手動コピーになると思われます。


略歴


トップページ / 計算機関係の雑多なこと / mingwrt-3.21.1をMinGW GCC-3.4.5でビルドする
このサイトについて・著者連絡先