1. ホーム
  2. c++

[解決済み] PreprocessorDefinitionsの設定にVSマクロを使用する

2022-02-15 14:42:22

質問

Visual Studioのマクロを使用して、以下のようにプロセサの定義を設定したいのですが。

<PreprocessorDefinitions>$(ProjectName)_DEFINE</PreprocessorDefinitions>

というように、srcファイルで使うことができるんです。

#ifdef MyProjectName_DEFINE
#define helloWorld
#endif

ウェブ上では、/Dパラメータを使ったものしか見つからなかったので、試してみました。ということで、/D$(ProjectName)_EXPORTを試してみましたが、やはりうまくいきませんでした :(

ありがとうございます。

解決方法は?

両方の設定 PreprocessorDefinitions を使用し /D オプションは正常に動作するはずですが、あなたの場合、なぜ動作しないのかがわかりません。もしかしたら、あなたが使っているビルド構成と異なるオプションを設定しているか、どこかにタイプミスがあるのかもしれません。

例:VSでプロジェクトを右クリックして、正しい コンフィギュレーション プラットフォーム に進みます。 プロパティ->C/C++->プリプロセッサー を入力し

%(PreProcessorDefinitions);$(ProjectName)_DEFINED

の値として プリプロセッサー定義

ここで、あなたのプロジェクトの名前が マイプロジェクト の場合、プリプロセッサのシンボル MyProject_DEFINED が定義されます。このように %(PreProcessorDefinitions) これは、ビルドプロセスで先に設定した定義が継承されるようにするためのものです。 このプロジェクトをテキストエディタで開くと、次のようになります (ここでは Debug|Win32 ビルド用の部分を示しています)。

<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
  <ClCompile>
    <PreProcessorDefinitions>%(PreProcessorDefinitions);$(ProjectName)_DEFINED</PreProcessorDefinitions>
  </ClCompile>
</ItemDefinitionGroup>

すべてのプラットフォーム/構成に対して定義が必要な場合は、上記をコピー/ペーストして Condition の部分があります。