QT DEFINES和C++中的#define一样吗?

Ter*_*how 13 c++ qt

什么是DEFINES += includthisvariable在QT一个做.pro文件?

如果它像#define在C++中那样工作,那么在哪里includethisvariable定义,以便预处理器可以替换includethisvariable为我设置的值?

我理解#define在c ++中做什么,因为你在你定义的旁边设置了值.但是在这里,你似乎只是列出了一个名字...... QT文档并没有帮我解释这个问题.

Mic*_*urr 19

Qt项目文件DEFINES变量中的项目最终在编译器的命令行上带有-D选项(或适用于所用编译器的任何内容).要为宏定义赋予值而不是仅仅定义它,请使用以下命令:

DEFINES += FOOBAR=foobar_value
Run Code Online (Sandbox Code Playgroud)

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

如果需要空格,则需要引用该值 - 并转义将在编译器命令行上传递的引号:

DEFINES += FOOBAR="\"foobar value\""
Run Code Online (Sandbox Code Playgroud)

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


sus*_*tus 5

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

这意味着任何#ifdef语句都像

#ifdef includethisvariable
...
...
#endif
Run Code Online (Sandbox Code Playgroud)

包含在正在编译的源中.

还可以定义具有值的宏

`DEFINES += "MAXBUFFERSIZE=4096"
Run Code Online (Sandbox Code Playgroud)