2013-04-26 6 views
12

ファイルのQTで、DEFINES += includthisvariableは何をしますか?QT定義はC++の#defineと同じことをしていますか?

それはプリプロセッサは私が設定した値とincludethisvariableを置き換えることができるようにincludethisvariableが定義されているC++で#define、のように動作しますか?

あなたが定義するものの横にある値を設定するので、#defineはC++で何をするのですか。しかし、ここでは名前をリストアップしたように思えます... QTドキュメントは私のためにこれを説明するのに役立たなかった。

答えて

4

はい同じように動作します。 DEFINES += includethisvariableには、コンパイル中のソースにプリプロセッサシンボルincludethisvariableが含まれています。

これは、コンパイルされるソースに含まれている

#ifdef includethisvariable 
... 
... 
#endif 

ような任意の#ifdef文を意味しています。値を持つ

マクロも

`DEFINES += "MAXBUFFERSIZE=4096" 
13

-Dオプション(またはものは何でも使用しているコンパイラに適している)と、コンパイラのコマンドライン上のQtのプロジェクトファイルのDEFINES変数エンドアップの項目を定義することができます。代わりに、単にそれを定義する値をマクロ定義を与えるために、次の使用:-DFOOBAR=foobar_valueあなたは値を引用する必要があり、スペースが必要な場合は

として、コンパイラのコマンドラインに表示されます

DEFINES += FOOBAR=foobar_value 

- コンパイラのコマンドラインに渡されます引用符をエスケープ:

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

この1のように現れる:-DFOOBAR="foobar value"

+1

/Dなど – ismail

1

からdocumentation

定義は.configファイルで指定されています。 .configファイルは の正規のC++ファイルで、 の解析時にすべてのソースファイルの先頭に付加されます。唯一の例以下 のように行を追加する.configファイルを使用します。Linux、OSX上のWindows、-D上

#define NAME value 
+0

リンク切れ:-( – pevik

+0

は編集できません。 (編集キューがいっぱいですので、コメントとして作業リンクを投稿します):http://doc.qt.io/qtcreator/creator-project-generic.html#specifying-defines – AntonyG

関連する問題