2013-04-26 35 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

相關問題