3

私は VS2008 を使用しており、C/C++ プロジェクトを開発しています。.bat ファイルを使用して、コマンドライン (VC2k8 コマンド プロンプト) からプロジェクトをビルドしています。ビルド時に preprossor ディレクティブを動的に含める方法が必要です。

コマンドラインからビルドするために devenv を使用しています。

>devenv my\project\path\myproject.sln /build release > logs\build.log

実際には、コマンド ライン パラメータに基づくマクロ定義をバッチ ファイルに設定したいと考えています。2 つの異なる .vcproj ファイルを保持できますが、複数の project/sln ファイルを保持すると問題が発生します。私のバッチファイルは次のようになります...

if (condition)
#define MYPROC_ENABLE_MYMODULE "yes" // To be included in the project.
else
#define MYPROC_ENABLE_MYMODULE "no"

どんな助けでも本当に感謝しています。

ありがとう。

4

2 に答える 2

1

1 つのオプションは、次のようなものを使用してCL環境変数を設定することです。

set CL=/DMYPROC_ENABLE_MYMODULE

C++ コンパイラ ( ) は、実行時に環境変数の内容をコマンド ラインにcl.exe追加します。CL

を使用してビルドする場合、マクロを定義できることは知っていますが、直接msbuild使用する場合に同じことができるかどうかはわかりません。devenv

于 2010-08-23T21:44:09.890 に答える
1

ソリューションに対してさまざまな構成を作成し、さまざまな構成に対してさまざまなプリプロセッサ フラグを定義できます。次に、コマンド ラインで構成を選択するだけでよく、複数のソリューション ファイルやプロジェクト ファイルは必要ありません。

于 2010-08-23T21:44:12.850 に答える