Visual Studio 在命令行中定义预处理器指令
Posted
技术标签:
【中文标题】Visual Studio 在命令行中定义预处理器指令【英文标题】:Visual Studio define pre-processor directive in the command line 【发布时间】:2016-01-25 20:43:14 【问题描述】:#ifdef DEBUG_TEST
std::cout << "Hello" << std::endl;
#endif
如何在 VS 中将 #define DEBUG_TEST
作为命令行参数?我试过/DDEBUG_TEST
,但指令没有被定义。
【问题讨论】:
你在哪里添加/DDEBUG_TEST
?这适用于 cl
命令行,但如果您在 VS IDE 的 Preprocessor Definitions 下输入它,则只需输入 DEBUG_TEST
。
为什么不只使用预处理器部分......更新了我的答案
【参考方案1】:
不确定您的问题是否存在格式问题,但这应该可以:-
/D "DEBUG_TEST"
或在预处理器部分输入它
【讨论】:
【参考方案2】:答案是:
/DDEBUG_TEST
没有空格,没有引号。我相信您也可以将 gcc 语法与 cl 一起使用,但我不确定。如果是这样,这也应该有效:
-DDEBUG_TEST
示例用法:
cl /DDEBUG_TEST source_code.cpp
以下是官方文档: https://msdn.microsoft.com/en-us/library/hhzbb5c8.aspx
【讨论】:
我查看了 MS 文档,但它不起作用。 @JamesKing 您是否从 Visual Studio 命令提示符运行cl
?因为/Dmacro_name[=value]
是cl
的正确语法,我在编译程序时使用它。
我在属性的命令行参数框中输入它。
哪个命令行框,哪个版本的visual studio?我看到几个框(一个用于链接器,一个用于清单工具,等等),所以它可能在错误的那个(注意我的 VStudio 版本有点过时,你的可能与我的不同)。查看msdn.microsoft.com/en-us/library/3600tzxa.aspx 的第一部分,并确保它在指定的框中?
具体来说,它应该在“属性”>“配置属性”>“C/C++”>“命令行”部分中,我相信,这似乎是将参数传递给cl
的部分。尝试在那里输入选项,看看它是否有效。以上是关于Visual Studio 在命令行中定义预处理器指令的主要内容,如果未能解决你的问题,请参考以下文章
用CMake设置Visual Studio工程中预处理器定义值
在 Visual Studio 2010 中,如何从父项目继承预处理器定义?
如何在命令行中使用 Visual Studio 编译 x64 代码?
在 Visual Studio 中编译与在命令行中使用 cl 编译