Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 开发和#定义_C++_Visual Studio 2010_Command Line_C Preprocessor_Devenv - Fatal编程技术网

C++ 开发和#定义

C++ 开发和#定义,c++,visual-studio-2010,command-line,c-preprocessor,devenv,C++,Visual Studio 2010,Command Line,C Preprocessor,Devenv,我正在使用cmd-devenv构建一些项目 对于某些项目,我想从命令行定义 有没有办法使用cmd和devenv来定义?我不想创建新的配置。许多编译器允许您在命令行中设置define宏。常用选项是“-D” 检查编译器文档中的确切语法 编辑1: Visual Studio编译器具有配置选项来指定IDE中的宏(使用“-D”开关将宏传递给编译器)。使用devenv.exe无法执行此操作,请参阅。您可以使用编译器cl.exe执行此操作,但不能重复使用项目文件中的所有设置。您可以执行以下操作: 将$(Ad

我正在使用cmd-devenv构建一些项目

对于某些项目,我想从命令行定义


有没有办法使用cmd和devenv来定义?我不想创建新的配置。

许多编译器允许您在命令行中设置define宏。常用选项是“-D”

检查编译器文档中的确切语法

编辑1:
Visual Studio编译器具有配置选项来指定IDE中的宏(使用“-D”开关将宏传递给编译器)。

使用devenv.exe无法执行此操作,请参阅。您可以使用编译器cl.exe执行此操作,但不能重复使用项目文件中的所有设置。

您可以执行以下操作:

  • $(AdditionalPreprocessOrdDefinitions)
    添加到项目的预处理器定义列表中。之后,它们可能看起来像
    WIN32_调试_控制台$(附加预定义);%(预处理定义)

  • 使用
    msbuild
    而不是
    devenv
    启动生成过程

  • 通过向命令行添加
    /p:AdditionalPreprocessDefinitions=“SOMEDEF;ANOTHERDEF”
    来指定其他预处理器定义


请不要因为我选择了名称AdditionalPreprocessorDefinitions只是为了清晰起见,您可以选择更短的名称。这只适用于VC2010,因为在早期版本中,VC++项目不是使用msbuild生成的。

我尝试使用/p:Definition=“TEST”使用msbuild,但没有成功。它尝试过/p:DefineConstants=“TEST”也没有成功。我做错了什么?我正在使用3个项目编译解决方案我尝试使用msbuild使用/p:Definition=“TEST”,但没有成功尝试/p:DefineConstants=“TEST”也没有成功我做错了什么?我正在编译一个包含3个项目的解决方案您是否遵循上面列表的步骤1?在C++的解决方案中,必须编辑项目并插入$(变量名);是的,我尝试将$(Flavors)添加到预处理器定义中,现在看起来是:WIN32;恩德布格_窗口;%(口味);%(PreprocessorDefinitions)并使用命令msbuild project.sln/p:Flavors=“Test”/t:rebuild它仍然不是working@alejo尝试用$(Flavors)替换%(Flavors)现在它工作正常,这是一个非常严重的错误,感谢您的帮助。可以在以下位置找到“更好”的答案。。。您可以使用希望CL.exe在生成过程中使用的任何额外命令行选项设置环境变量CL,例如:set CL=/DSOMETHING=1