「コンパイル時のフラグについて」の編集履歴(バックアップ)一覧はこちら
「コンパイル時のフラグについて」(2009/10/05 (月) 21:13:40) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
記事を書いた日:2009/10/05
*Visual Studioのコンパイル時のフラグなどについて
正直Windows開発関係の単語ははじめたばかりでぜんぜん知らないので、間違っている表現がたくさんありそうです。気になったら自分で調べることをお勧めします。
VisualStudioでプロジェクトを作成し、コンパイルする際にコンパイラに与えるオプションはどこで指定しているのか不明だったのですが、見つけたので覚書をしておきます。
gccに与えるオプションとはどういうものかというと
gcc -g
とか、Makefileにかかれてたりする
gcc -D
とか
gcc -L
とかですね。知りたい人は
%man gcc
とかしてください。
たとえばC++で以下のようなコードを書いたとします。
#ifdef DLLSAMPLE_EXPORTS
#define DLLSAMPLE_API __declspec(dllexport)
#else
#define DLLSAMPLE_API __declspec(dllimport)
#endif
このコードは、DLLのシンボルを外部にエクスポートまたはインポートするマクロですが、
DLLSAMPLE_EXPORTS
というフラグが立ってるかどうかで、エクスポートなのかインポートなのかが分岐します。
このフラグが場所ですが、作成したプロジェクトを選択して右クリック→Propertiesを開きます。例えばC/C++というタブ(でいいのかな?)を展開し、Command Lineをクリックすると、そこにあります。以下のような記述があります。
/Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS"
/D "立てたいフラグ名"とすると、フラグが強制的に立てられた状態でコンパイルされます。
フラグっていうよりマクロって書いたほうがいいんだろうか。