やってみる

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

Makefileで複数のソースコードをコンパイルする

Makefileで複数のソースコードコンパイルする

MinGWのmakeにて複数のソースコードコンパイルする方法について確認してみた。

window messagebox

入手先

GitHub MEGA

開発環境

ライブラリ

環境変数のPathに各DLLがあるディレクトリパスを追記することでexeを実行できる。

前回まで

  1. MinGWでコンパイルできる環境が整った。
  2. さらにGTKmm3ライブラリも揃った。
  3. HelloWorldまでやった。

Makefileコンパイルする方法を以下のとおりに調べる。

実施 パターン
単体コード
複数コード
略記
サブディレクト
Release/Debug切替

ソースコード

ソースコード前回のを3ファイルに分割しただけ。

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 オプションを付けた。

なぜか前回の45秒より格段に速いコンパイル時間。

ファイル数が増えたら手間がかかるのでは?コード内容はまったく同じだから大差はないだろうけど。 なんにせよ、こんなに時短される理由がわからん。嬉しいからいいや。

所感

ふつうは今回のように.hと.ccファイルに分けてコードを書く。

前回よりは実用的なMakefileを書けた。