MinGWのmakeにて複数のソースコードをコンパイルする方法について確認してみた。
入手先
開発環境
- Windows XP Pro SP3 32bit
- MinGW 5.3.0
- g++ 5.3.0
ライブラリ
環境変数のPathに各DLLがあるディレクトリパスを追記することでexeを実行できる。
前回まで
- MinGWでコンパイルできる環境が整った。
- さらにGTKmm3ライブラリも揃った。
- HelloWorldまでやった。
Makefileでコンパイルする方法を以下のとおりに調べる。
実施 | パターン |
---|---|
● | 単体コード |
未 | 複数コード |
未 | 略記 |
未 | サブディレクトリ |
未 | Release/Debug切替 |
ソースコード
Makefile
program.exe: program.o MainWindow.o
g++ -o program.exe program.o MainWindow.o
MainWindow.o: MainWindow.cc
g++ -c MainWindow.cc
program.o: program.cc
g++ -c program.cc
依存関係だけに注目するよう他のオプションは非表示にしてみた。
以下のような手順でexeを作成している。
- .cc→.o
- program.cc→program.o
- MainWindow.cc→MainWindow.o
- .o→.exe
- program.o, MainWindow.o→program.exe
コンパイル時間とファイルサイズ
コンパイル時間 | ファイルサイズ | オプション |
---|---|---|
2秒 | 132KB | -s , -O3 , -DUNICODE オプションを外した。 |
2秒 | 65KB | -s , -O3 , -DUNICODE オプションを付けた。 |
ファイル数が増えたら手間がかかるのでは?コード内容はまったく同じだから大差はないだろうけど。 なんにせよ、こんなに時短される理由がわからん。嬉しいからいいや。
所感
ふつうは今回のように.hと.ccファイルに分けてコードを書く。