如何在Visual Studio中指定预处理器选项

时间:2015-06-19 18:15:08

标签: c++ c-preprocessor preprocessor-directive

在使用g ++的Linux上,我使用-DPROGRAMNAME_VERSION=1.6-DEIGEN_NO_DEBUG来正确设置一些文本并分别提高执行速度。我正在Windows上进行一些测试,并且在使用VS 2013复制可执行文件时遇到了麻烦。我搜索了SO并找到了针对Properties-> C / C ++ - > Preprocessor->预处理器定义的建议。这与此处https://msdn.microsoft.com/en-us/library/hhzbb5c8.aspx中的Microsoft文档一致。问题是当我尝试用

做的时候
/DEIGEN_NO_DEBUG
/DPROGRAMNAME_VERSION=1.6

日志文件显示版本1.00的默认值,执行时间是预期时间的两倍。 /DEIGEN_NO_DEBUG用于C ++ Eigen,而另一个用于:

#ifndef PROGRAMNAME_VERSION
#define PROGRAMNAME_VERSION 1.00
#endif

两者都经过测试并在Linux上运行。关于SO的答案已经被接受,这让我觉得有一些小技巧让我无法完成这项工作。

1 个答案:

答案 0 :(得分:0)

Praetorian gave the correct answer. Visual Studio doesn't use the same /D or -D that g++, etc use. It inserts that for you. The correct usage is as shown in his comment.

I'm guessing you put /DPROGRAMNAME_VERSION=1.6 into the settings instead of PROGRAMNAME_VERSION=1.6. MS build will insert the /D for you when invoking the compiler. – Praetorian