技術は楽するために

日々の開発で作ったプログラムの一部を公開していきます。

超簡単なmakefile 第3回

第2回の更新から1ヶ月が立ちました。
第1回から第2回の間も1ヶ月空いてしまいましたので、実質このMakefileシリーズは、1ヶ月ごと更新になってます(汗)
第3回は、「(2)コンパイルオプション」について説明しようかと思います。
(*(1)コンパイラに関しては、あまり書くこともないため、省略します。)

コンパイルオプションを一言でいうとコンパイル時のメインの作業にお好みで付け加える機能やルールになります。
一般のサービスにも「オプション対応で〜」という宣伝文句がありますがあれと似たようなものです。

具体的には、こんな感じで書きます。

CFLAGS    = -g -Wall -Wextra -Winit-self -Weffc++ -std=c++0x

ここに書いているgとかMMDとか言っているのがコンパイル時の各種オプションになります。
それぞれのオプションの意味をリスト化しました。

オプション表記 概要
g コンパイル時にデバッグ情報を付加する。
Wall コンパイル時の警告(エラーでない)を表示する。
Wextra Wallでは対象としていないオプション(エキストラ)を表示する。
Winit-self 未定義の変数を自分自身が初期化すると警告する。(int a = a; など)
Weffc++ effectiveC++に沿っていない記法を警告する。
std=c++0x C++11の機能を有効化する。


今回記載したオプション以外にも様々な種類のコンパイルオプションがあります。
本ブログは、あくまで「Makefileを書いたことがない人がとりあえず書けるようになるブログ」を目指しているため、
あまり各種オプションの説明はしないことといたします。
興味がある人は調べてみてください!