コンパイル時のフラグについて


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

記事を書いた日: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 "立てたいフラグ名"とすると、フラグが強制的に立てられた状態でコンパイルされます。



フラグっていうよりマクロって書いたほうがいいんだろうか。
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。