我有一个空的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
给出相同的输出。