在使用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的答案已经被接受,这让我觉得有一些小技巧让我无法完成这项工作。
答案 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