WindowsXPでGtkmm3をコンパイルするも失敗したログ。
環境
- Windows XP Pro SP3 32bit
- MinGW
- g++ 5.3.0
- msys 1.0
手順
こちらを試す。
1) MinGWをインストールする
- mingw32-base
- mingw32-gcc-g++
- msys-base
前回までのブログのとおりにインストールする。
MinGWはC:\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) 環境変数を設定する
変数名 | パス |
---|---|
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;
のようになるはず。
※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ファイルのパスを渡す
- 「checking whether make sets $(MAKE)...」で止まる
変数名 | パス |
---|---|
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)。
でも、私の実行結果ではできていなかった。
何かしら吐き出されているので、次回はそれを見てみる。