GTKmm3を再コンパイルする
前回まで
- GTKmm3をソースコードからコンパイルした。
- しかし、GTKmm3を使ったHelloWorldに失敗した。
- 以前までのイビツな環境が実行時エラーの原因だと推測した。(gcc4.6.2, g++5.3.0)
- そこで、今回は前回インストールしたMinGW5.3.0の環境にて再度GTKmm3をコンパイルしなおすことにした。
こちらを参考に環境構築した。
今回
以前に構築した環境があるので、それを真似してコピペすればいいはず。
MinGW | パス |
---|---|
以前 | C:/MinGW |
今回 | C:/MinGW_GET |
手順
必要なファイルを揃える。
- 旧
C:\MinGW\msys\1.0
にあるgtk3
ディレクトリを新C:\MinGW_GET\msys\1.0
にコピペする。 - 旧
C:\MinGW\msys\1.0
にあるhome
ディレクトリを新C:\MinGW_GET\msys\1.0
にコピペする。 - 新
C:\MinGW_GET\msys\1.0
にgtkmm3
ディレクトリを新規作成する
次に環境構築を整える。
環境変数
C:/tools/...
のパスを削除するC:/MinGW/...
のパスをC:/MinGW_GET/...
にする。
ユーザ環境変数
環境変数 | 前 | 後 |
---|---|---|
LIBRARY_PATH | C:/MinGW/msys/1.0/gtk3/bin; | C:/MinGW_GET/msys/1.0/gtk3/bin; |
MAKE | C:/MinGW/msys/1.0/bin/make.exe | C:/MinGW_GET/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; | C:/MinGW_GET/msys/1.0/gtk3/lib/pkgconfig;C:/MinGW_GET/msys/1.0/gtkmm3/lib/pkgconfig; |
PATH | C:\tools\msys32; を削除した(2つあった) |
システム環境変数
環境変数 | 前 | 後 |
---|---|---|
LIBRARY_PATH | C:/MinGW/msys/1.0/gtk3/bin; | C:/MinGW_GET/msys/1.0/gtk3/bin; |
Path
変数は以下のようにした。
C:/MinGW/msys/1.0/gtk3/bin;
を削除したC:/tools/mingw32/bin;
を削除したC:/MinGW/bin;
をC:/MinGW_GET/bin
に変更した- 以下のように変更した
- 前:
C:/MinGW/msys/1.0/bin;C:/MinGW/msys/1.0/gtk3/bin;C:/MinGW/msys/1.0/home/m4-1.4.14-1-bin/bin;
- 後:
C:/MinGW_GET/msys/1.0/bin;C:/MinGW_GET/msys/1.0/gtk3/bin;C:/MinGW_GET/msys/1.0/home/m4-1.4.14-1-bin/bin;
- 前:
gcc,g++の確認
環境変数にて使われるgcc,g++が、mingw-get.exeで取得したものであるか確認する。
mingw-get.exeで取得したgcc,g++は、C:/MinGW_GET/bin
にある。
A
- コンソールを起動する
cd C:/MinGW_GET/bin
コマンドを実行するgcc --version
を実行するg++ --version
を実行する- 上記のバージョン情報をメモしておく
ログ
C:\MinGW_GET\bin>gcc --version
gcc (GCC) 5.3.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\MinGW_GET\bin>g++ --version
g++ (GCC) 5.3.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
B
ログ
C:\>gcc --version
gcc (GCC) 5.3.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\>g++ --version
g++ (GCC) 5.3.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
判定
結果は以下の場合がある。
- "A"と"B"でバージョン情報が同じ
- OK。
- "A"と"B"でバージョン情報が違う
- "B"で
'g++' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と出る
めでたく一致していた。環境変数の設定は完了。 これでGTKmm3のコンパイルには、gcc5.3.0, g++5.3.0が使われるはず。
ちなみに、以前にコンパイルしたときは、gcc 4.6.2, g++ (i686-posix-sjlj-rev0, Built by MinGW-W64 project) 5.3.0だった。
念のために
べつのMinGWのバージョン情報も確認しておく。 これらの表示になってしまったら、環境変数のパスが通ってしまっているということになる。 パスから削除すべき。
C:/MinGW/bin
昔どうやってインストールしたか忘れたMinGW。古い。
C:\MinGW\bin>gcc --version
gcc (GCC) 4.6.2
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:/MinGW/bin
にg++.exe
はない。gcc --version
コマンドを実行したら、環境変数パスから、C:/MinGW_GET/bin
のg++.exeを実行した結果が返ってくる。
C:/tools/mingw32/bin
chocolateyでインストールしたMinGW。
C:\tools\mingw32\bin>gcc --version
gcc (i686-posix-sjlj-rev0, Built by MinGW-W64 project) 5.3.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\tools\mingw32\bin>g++ --version
g++ (i686-posix-sjlj-rev0, Built by MinGW-W64 project) 5.3.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
shを実行する
C:\MinGW_GET\msys\1.0\msys.bat
を実行するcd C:/MinGW_GET/msys/1.0/home
コマンドを実行するsh 00_all.sh
コマンドを実行する
1時間43分かかった。
無事、C:\MinGW_GET\msys\1.0\gtkmm3\bin
配下にDLLが作成されていることを確認した。
以前の環境で生成した同名のDLLとくらべるとファイルサイズが違う。 異なるコンパイラを使ったことによる違いだと思われる。
所感
次回、HelloGTKmm3のリベンジができそう。