我经历过不少在回答这一问题上堆栈溢出的文章“我如何通过预处理器定义编译器从MSBuild的命令行”他们都报以的一些变化:数十人MSBuild.exe不接受任何/ P:DefineConstants也不/ P:PreprocessorDefinitions
MSBuild.exe "/p:DefineConstants=THING_TO_BE_DEFINED"
MSBuild.exe /p:DefineConstants="THING_TO_BE_DEFINED"
MSBuild.exe "/p:DefineConstants=THING_TO_BE_DEFINED=1"
MSBuild.exe /p:DefineConstants="THING_TO_BE_DEFINED=1"
...和:
MSBuild.exe /p:DefineConstants=THING_TO_BE_DEFINED
我都想尽变化,我可以拿出。我也以类似的方式调用重写PreprocessorDefinitions。他们都引发下面的#ERROR:
#include "stdafx.h"
#if !defined(THING_TO_BE_DEFINED)
#error "THING_TO_BE_DEFINED is not defined"
#endif
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
我一直在与上述简单的命令行应用程序尝试这个,还有一个巨大的游戏项目,我这里有。我只能猜测,Visual Studio(我在2005年和2008年看到这个)有一些默认设置,它阻止了我的命令行参数被应用,但是我没有发现证据支持这个假设。
关于如何让这个工作的任何想法?为什么以FSM的名义,他们没有坚持良好的醇'-D THING_TO_BE_DEFINED?
我坚持开发人员给我的.vcproj。卫生署。 – Sniggerfardimungus 2010-02-05 18:26:01