読者です 読者をやめる 読者になる 読者になる

やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Gtkmm3をコンパイルするも失敗

WindowsXPでGtkmm3をコンパイルするも失敗したログ。

環境

手順

こちらを試す。

1) MinGWをインストールする

  • mingw32-base
  • mingw32-gcc-g++
  • msys-base

前回までのブログのとおりにインストールする。

MinGWC:\tools\mingw32ディレクトリ配下にあるものを使う。 msysはC:\MinGW\msys\1.0ディレクトリ配下にあるものを使う。

msysは新しくインストールできなかったので既存のものを使った。 PCが壊れたらお終い。

2) gtk+-bundle_3.6.4-20130921_win32.zipをダウンロードする。C:\MinGW\msys\1.0\配下にgtk3ディレクトリを作成して、そこに解凍する。

3) C:\MinGW\msys\1.0\配下にgtkmm3ディレクトリを作成する。

4) 環境変数を設定する

  1. 環境変数ダイアログを表示する

    1. Windowsスタートメニュー→マイコンピュータ→右クリック→プロパティ。 1
    2. システムのプロパティダイアログが出現する
    3. "詳細設定"タブを押下する
    4. "環境変数"ボタンを押下する 2
  2. 以下のように環境変数を設定する

変数名 パス
MAKE C:/MinGW/msys/1.0/bin/make.exe
PKG_CONFIG_PATH C:/MinGW/msys/1.0/gtk3/lib/pkgconfig;C:/MinGW/msys/1.0/gtkmm3/lib/pkgconfig;
Path C:/MinGW/bin;C:/MinGW/msys/1.0/bin;C:/tools/mingw32/bin;C:/MinGW/msys/1.0/gtk3/bin;

環境変数名がすでに存在する場合、その変数の値は絶対に消さないこと。

とくに"Path"はすでに存在すると思われる。 既存の値は絶対に消さず、後ろに追記すること。 なお、パスを区切るときは;を使う。 (既存の値);C:/MinGW/bin;C:/MinGW/msys/1.0/bin;C:/tools/mingw32/bin;C:/MinGW/msys/1.0/gtk3/bin;のようになるはず。

path1 path2

※MAKEはこちらには書いていないが、必要だった。

後にわかるが、\だとエスケープ文字として消えてしまう。\のかわりに/を使った。

5) C:\MinGW\msys\1.0\配下にhomeディレクトリを作成する。

6) こちらの方はC:\MinGW\msys\1.0\home\giuをhomeとしたらしい。私はC:\MinGW\msys\1.0\homeで行った。 おそらく、ここでいうhomeは、カレントディレクトリを意味しているのだと思う。

7) 以下をダウンロードしてhomeに配置する。("tarballs"とやらが何なのかは知らない)

8) giu-mingw.7zをダウンロードして解凍して各ファイルをhomeに配置する。

9) home配下にlogディレクトリを作成する。(私の場合ログは吐き出されなかった)

あとで気づいたが、logでなくlogsだった。

10) C:\MinGW\msys\1.0\msys.batを実行する。cd C:\MinGW\msys\1.0\homeし、sh ./00_all.shする

11) C:\MinGW\msys\1.0\gtkmm3ディレクトリにbin,include,libディレクトリが作成される。内容はgtkmm-3.6.0-win32.7z

ということらしいが、私の場合はDLLは作成されていなかった。

やってみた

sh ./00_all.shの実行で手間取った。

ログが長すぎて記録できなかった。 覚えているかぎりで経緯を記録しておく

1回目

  • msys.bat起動
  • shコマンドに00_all.shのパスを渡す(sh C:/MinGW/msys/1.0/home/00_all.sh)
  • なんかいろいろ聞かれた気がする。"y"や"n"で答えた
  • 「File to patch:」の問いに「giu-mingwディレクトリ内にある.patchファイルのパスを渡す
    • "C:/MinGW/msys/1.0/home/giu-mingw/glibmm-2.34.1.patch"など
    • ほか、同様に".patch"拡張子のファイルパスをもう一つ入力した気がする
    • make.exe など何度もおなじような以下のエラーダイアログがでる make.exeエラー xz data compression tool for .xz and .lzma files
  • 「checking whether make sets $(MAKE)...」で止まる
    • メッセージから察するにmakeファイルを実行するexeファイルパスを環境変数で設定する必要があるのだろう。
    • 環境変数名=MAKE、値=C:\MinGW\msys\1.0\bin\make.exe
変数名 パス
MAKE C:\MinGW\msys\1.0\bin\make.exe

2回目

環境変数を変更したとき、一旦コンソールを閉じて再起動することで読み込まれる。

  • msys.bat起動
  • shコマンドに00_all.shのパスを渡す(sh C:/MinGW/msys/1.0/home/00_all.sh)

ビルドしている。

ただ、以下のようにmakeコマンドのパスがおかしい。 C:MinGWmsys1.0binmake.exeとなっている。 "\"がエスケープ文字として消されているっぽい。

/bin/sh: line 17: C:MinGWmsys1.0binmake.exe: command not found
C:\MinGW\msys\1.0\bin\make.exe[1]: *** [all-recursive] Error 1
C:\MinGW\msys\1.0\bin\make.exe[1]: Leaving directory `/usr/home/gtkmm-3.6.0'
make: *** [all] Error 2
tee: ../logs/06_gtkmm-install.log: No such file or directory
Making install in tools
/bin/sh: line 17: C:MinGWmsys1.0binmake.exe: command not found
make: *** [install-recursive] Error 1

環境変数のパス区切り文字を"\"から"/"に変更した。 ついでに、他の関係するパスも同様に変更した。

変数名 パス
MAKE C:/MinGW/msys/1.0/bin/make.exe
PKG_CONFIG_PATH C:/MinGW/msys/1.0/gtk3/lib/pkgconfig;C:/MinGW/msys/1.0/gtkmm3/lib/pkgconfig;
Path %Path%;C:/MinGW/bin;C:/MinGW/msys/1.0/bin;C:/tools/mingw32/bin;C:/MinGW/msys/1.0/gtk3/bin;

もう一度実行。

3回目

Makeには成功したっぽい。

長そうだったので放置した。

5時間後に見たら完了していた。

結果

こちらでは最後にDLLができたらしい(gtkmm-3.6.0-win32.7z)。

でも、私の実行結果ではできていなかった。

何かしら吐き出されているので、次回はそれを見てみる。