2011-06-17 17 views
3

私はcmd devenvを使っていくつかのプロジェクトを構築しています。devenvと#define

いくつかのプロジェクトでは、#コマンドラインを定義したいと思っています。

cmdとdevenvを使用して#defineする方法はありますか?私は新しい設定を作成したくありません。

+0

"より良い"答えはhttp://stackoverflow.com/questions/1783158/how-do-i-add-preprocessor-define-in-devenv-commandline ...で見つけることができます。環境変数CLを使用して、cl.exeがビルドプロセスで使用する次のような余分なコマンドラインオプションを指定します。 set CL =/DSOMETHING = 1 – CasaDeRobison

答えて

1

多くのコンパイラでは、コマンドラインでマクロを定義することができます。共通のオプションは "-D"です。

正確な構文については、コンパイラのドキュメントを参照してください。

編集1: Visual Studioのコンパイラは、IDEのマクロを指定する設定オプションがありますが、devenvをしてこれを行うことはできません

1

を(「-D」スイッチを使用して、コンパイラに渡されます。)。 exe、Command Line Optionsを参照してください。ただし、コンパイラではcl.exeを使用できますが、プロジェクトファイル内のすべての設定を再利用することはできません。

+0

/p:Definition = "TEST"を使用してmsbuildを使用してみましたが、それは動作しませんでした それは/ pを試みました:DefineConstants = "TEST"はどちらも動作しませんでした 私は間違っていますか? 私は3つのプロジェクトで解決策をコンパイルしています – alejo

6

あなたはこれを行うことができます:

  • は、プロジェクトのプリプロセッサ定義のリストに$(AdditionalPreprocessorDefinitions)を追加します。その後、彼らは、ビルドプロセスに

  • を開始する代わりにdevenvの使用msbuild

  • WIN32;_DEBUG;_CONSOLE;$(AdditionalPreprocessorDefinitions);%(PreprocessorDefinitions)のようになります。コマンドラインに /p:AdditionalPreprocessorDefinitions="SOMEDEF;ANOTHERDEF"を追加することによって、追加のプリプロセッサ定義を指定します。

私はちょうど明確にするための名前にAdditionalPreprocessorDefinitionsを選んだことを、あなたは短いものを選ぶことができませんしてください。以前のバージョンでは、VC++プロジェクトはmsbuildでビルドされていなかったため、これはVC2010でのみ機能します。

+0

/p:定義= "テスト"を使用してmsbuildを試しましたが、動作しませんでした 試した/ p:DefineConstants = "TEST"はどちらも動作しませんでした 間違ってる? 3つのプロジェクトでソリューションをコンパイルしています – alejo

+0

上記の手順1を実行しましたか? DefineConstantsのものはC#のみです。このソリューションではC++用にプロジェクトを編集して$(VariableName)を挿入する必要があります。プリプロセッサ定義文字列に追加します。 – Timbo

+0

はい、$(Flavors)をプリプロセッサ定義に追加しようとしました WIN32; NDEBUG; _WINDOWS;%(Flavors);%(PreprocessorDefinitions) と私はmsbuild project.sln/p:Flavors = "これはまだ動作していません – alejo

関連する問題