Передача аргумента 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

дает тот же вывод.

0 ответов

Другие вопросы по тегам