2015-06-19 383 views
0

在使用g ++的Linux上,我使用-DPROGRAMNAME_VERSION=1.6-DEIGEN_NO_DEBUG来正确设置一些文本并分别提高执行速度。我正在Windows上进行一些测试,并且无法在VS 2013中复制可执行文件。我搜索了一下,发现了有关Properties-> C/C++ - > Preprocessor-> Preprocessor Definitions的建议。这与微软在这里找到的文档https://msdn.microsoft.com/en-us/library/hhzbb5c8.aspx一致。问题是,当我尝试用如何在Visual Studio中指定预处理器选项

/DEIGEN_NO_DEBUG 
/DPROGRAMNAME_VERSION=1.6 

做日志文件显示的1.00版本的默认值和执行时间是两倍的预期时间。 该/DEIGEN_NO_DEBUG用于C++征而另一个被用作这样:

#ifndef PROGRAMNAME_VERSION 
#define PROGRAMNAME_VERSION 1.00 
#endif 

两个已经过测试并工作在Linux。 SO上的答案已被接受,这让我认为我错过了一些小技巧来完成这项工作。

+2

我猜你把'/ DPROGRAMNAME_VERSION = 1.6'放入设置而不是'PROGRAMNAME_VERSION = 1.6'。 MS构建会在调用编译器时为你插入'/ D'。 – Praetorian

+0

从1990年开始,'cl'的版本已经接受'-'和'/'。但我认为这个问题是关于使用IDE来设置这些东西 - 这绝对是可能的,但我至少已经过了6年,所以无法确定当前的IDE选项是什么 - 就像“预处理器选项“,我期望。 –

+0

@Praetorian你是对的我在里面包含/ D。我试着用/和 - 并且只用了一个领先的D.我从来没有想过我需要完全删除D.谢谢您的帮助。 – Matt

回答

0

Praetorian给出了正确的答案。 Visual Studio不使用与g ++等相同的/ D或-D。它为你插入。他的评论中显示了正确的用法。

我猜你把/DPROGRAMNAME_VERSION=1.6放到设置中而不是PROGRAMNAME_VERSION = 1.6。 MS构建将在调用编译器时为您插入/ D。 - Praetorian

相关问题