2013-04-26 177 views
12

DEFINES += includthisvariable在QT中为.pro文件做什么?QT定义与C++中的#define做同样的事情吗?

如果它在C++中的工作方式与#define相同,其中includethisvariable定义为使预处理器可以用我设置的值替换includethisvariable

我知道#define在C++中的作用,因为您在您定义的旁边设置了值。然而,在这里,你似乎只是列出了一个名字...... QT文档没有帮我解释这个。

回答

4

是的,它以相同的方式工作。 DEFINES += includethisvariable在正在编译的源中包含预处理器符号includethisvariable

这意味着任何#ifdef语句等

#ifdef includethisvariable 
... 
... 
#endif 

被包括在源被编译。

宏与值也可与-D选项编译器的命令行上的Qt项目文件的DEFINES可变端向上定义

`DEFINES += "MAXBUFFERSIZE=4096" 
13

的项目(或任何适合的编译器被使用)。为了让你的宏定义的值,而不是仅仅定义它,使用以下命令:

DEFINES += FOOBAR=foobar_value 

这将显示编译器的命令行上为-DFOOBAR=foobar_value

如果你需要,你需要引用的价值空间 - 和逃避那将编译器命令行上传递的报价:

DEFINES += FOOBAR="\"foobar value\"" 

这一个显示为:-DFOOBAR="foobar value"

+1

在Windows上,-D在Linux,OSX等 – ismail 2013-04-26 19:55:54

1

documentation

该定义在.config文件中指定。 .config文件是一个 常规C++文件,它们在分析了 时预先添加到所有源文件中。仅使用config文件中添加行,如下面的例子 :

#define NAME value 
+0

断开链接/ d :-( – pevik 2016-09-19 21:52:12

+0

无法编辑(编辑队列已满,因此我将发布工作链接作为注释):http://doc.qt.io/qtcreator/creator-project-generic.html#specifying-defines – AntonyG 2017-05-10 07:40:13

相关问题