Передача аргумента DefineConstants в msbuild не работает
У меня есть пустой проект C++, содержащий один файл, который говорит
#ifndef FOO
#error
#endif
void main(){}
Я хочу скомпилировать это с помощью msbuild, передав константу FOO в msbuild. Согласно этому посту это можно сделать командой
$ msbuild /property:DefineConstants=FOO /t:Rebuild
в какой-то оболочке. Тем не менее, это дает мне ошибку
Project "C:\Users\Chiel.tenBrinke\Documents\Visual Studio 2015\Projects\Project1\Project1.sln" on node 1 (Rebuild target(s)).
ValidateSolutionConfiguration:
Building solution configuration "Debug|x64".
The target "BeforeGenerateProjectPriFile" listed in a BeforeTargets attribute at "C:\Program Files (x86)\MSBuild\Microsoft\NuGet\Microsoft.NuGet.targets (186,61)" does not exist in the project, and will be ignored.
Project "C:\Users\Chiel.tenBrinke\Documents\Visual Studio 2015\Projects\Project1\Project1.sln" (1) is building "C:\Users\Chiel.tenBrinke\Documents\Visual Studio 2015\Projects\Project1\Project1\Project1.vcxproj" (2) on node 1 (Rebuild target(s)).
_PrepareForClean:
Deleting file "x64\Debug\Project1.tlog\Project1.lastbuildstate".
InitializeBuildStatus:
Touching "x64\Debug\Project1.tlog\unsuccessfulbuild".
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\CL.exe /c /ZI /nologo /W3 /WX- /sdl /Od /D _MBCS /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /Gd /TP /errorReport:queue Test.cpp
Test.cpp
c:\users\chiel.tenbrinke\documents\visual studio 2015\projects\project1\project1\test.h(3): fatal error C1189: #error: [C:\Users\Chiel.tenBrinke\Documents\Visual Studio 2015\Projects\Project1\Project1\Project1.vcxproj]
Done Building Project "C:\Users\Chiel.tenBrinke\Documents\Visual Studio 2015\Projects\Project1\Project1\Project1.vcxproj" (Rebuild target(s)) -- FAILED.
Done Building Project "C:\Users\Chiel.tenBrinke\Documents\Visual Studio 2015\Projects\Project1\Project1.sln" (Rebuild target(s)) -- FAILED.
Build FAILED.
"C:\Users\Chiel.tenBrinke\Documents\Visual Studio 2015\Projects\Project1\Project1.sln" (Rebuild target) (1) ->
"C:\Users\Chiel.tenBrinke\Documents\Visual Studio 2015\Projects\Project1\Project1\Project1.vcxproj" (Rebuild target) (2) ->
(ClCompile target) ->
c:\users\chiel.tenbrinke\documents\visual studio 2015\projects\project1\project1\test.h(3): fatal error C1189: #error: [C:\Users\Chiel.tenBrinke\Documents\Visual Studio 2015\Projects\Project1\Project1\Project1.vcxproj]
0 Warning(s)
1 Error(s)
Я перепробовал все виды комбинаций, как
$ msbuild /property:DefineConstants="FOO=1" /t:Rebuild
но это не помогло
Используя команду
$ msbuild /property:PreprocessorDefinitions="FOO" /t:Rebuild
дает тот же вывод.