web-dev-qa-db-ja.com

C ++ Qt-qmakeによって生成されるmakefileに「-std = c ++ 11」を追加する方法

Qtでプログラムを開発しています。そのメイクファイルは、.proファイルから自動的に生成されます。 g ++用に-std = c ++ 11フラグを設定する必要があるコードを使用する必要があります。このフラグを.proのどこに追加すればよいですか? (Makefileのみを変更しても、プロジェクトをビルドするたびに新しく生成されたものによって上書きされるため、機能しません)。

53
Natalia Zoń

特定のフラグを挿入するのは魅力的だと思うかもしれません(それについて言及します)

QMAKE_CXXFLAGS += -std=c++11

.proファイルに追加しますが、これはユーザーに代わってそのフラグだけを挿入します。

それでは不十分です。正しい方法は、代わりに挿入することです

CONFIG += c++11

.proファイルで。その後、2つまたは3つの必要な変更がqmakeによって行われます。

  1. -std=c++11が挿入されます。
  2. -stdlib=libc++が挿入されます。
  3. Macを使用している場合、-mmacosx-version-min=10.6-mmacosx-version-min=10.7になります。 (おそらく、他のOSまたはOSバージョンでも同様の変更が必要です。)

(同様の問題 1 および 2 で。)

13
Calaf

以下をC++ 11のQt .proに追加できます。-

CONFIG += c++11

Qt 5.4の時点で、C++ 14は

CONFIG += c++14
76
TheDarkKnight

CXXフラグを変更できます。

QMAKE_CXXFLAGS += -std=c++11

私は通常次のように設定します:

QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic
23
BЈовић

Snow Leopad 10.6.8とgcc 4.9を使用していますが、使用する必要がありました

CONFIG += c++11

の代わりに

QMAKE_CXXFLAGS += -std=c++11

後者は単に認識されませんでした。

3
Wall-E
CONFIG += c++11 

ubuntuデスクトップにqt5-defaultをインストールした後、Qt4 SDKで.proファイルの

Sudo apt install qt5-default

とにかく、生成されたmakefileには-std=c++0xオプションが含まれており、C++ 11コードをコンパイルするには十分であると思われます。

0
Pascal Séguy