以下は、通常の VS2010 C++ プロジェクトから取得したものです。
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
編集PreprocessorDefinitions
すると、プリプロセッサで使用される定義を設定できます。これは、コードで#ifdef
etcを介して確認できます。
ただし、次を使用する場合
<Target Name="NormalBuild" Condition=" '$(_InvalidConfigurationWarning)' != 'true' " DependsOnTargets="_DetermineManagedStateFromCL;CustomBeforeBuild;$(BuildDependsOn)" Returns="@(ManagedTargetPath)">
<ItemGroup>
<ManagedTargetPath Include="$(TargetPath)" Condition="'$(ManagedAssembly)' == 'true'" />
</ItemGroup>
<Message Text="PreprocessorDefinitions: $(PreprocessorDefinitions)" Importance="High" />
</Target>
<Target Name="TestBuild" Returns="@(ManagedTargetPath)">
<MSBuild Projects="demo.vcxproj" Targets="NormalBuild" Properties="PreprocessorDefinitions=THISGETSSETBUTDOESNOTHING"/>
</Target>
PreprocessorDefinitions
設定した値を含むメッセージを介して確認することもできますが、Properties="PreprocessorDefinitions=THISGETSSETBUTDOESNOTHING"
ビルドを制御できませんなどを使用してビルドを制御するためのこれらのキーのいずれか。#ifdef
PreprocessorDefinitions
<Message Text="PreprocessorDefinitions: $(PreprocessorDefinitions)"
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
#ifdef
- 何故ですか?
Properties
tasks要素を介して VS2010 C++ プロジェクトに PreprocessorDefinitions を渡すにはどうすればよいですか?