将defineConstants参数传递给msbuild不起作用

时间:2016-03-08 09:43:37

标签: c++ msbuild macros preprocessor-directive

我有一个空的c ++项目,其中包含一个文件

#ifndef FOO
#error
#endif
void main(){}

我想通过将常量FOO传递给msbuild来使用msbuild编译它。根据{{​​3}},可以使用命令

完成
$ msbuild /property:DefineConstants=FOO /t:Rebuild

在某些shell中。但是,这给了我错误

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 个答案:

没有答案