11

私の中心的な質問は、Qt Creator を「一般的な」(Qt 以外の) プロジェクトのコード エディターとして使用する場合、c++11 構文の強調表示を使用するようにどのように指示すればよいかということです。

しばらく取り組んできた c++11 プロジェクトがあり、Qt Creator を試してみることにしました。これは、手作業でコード化された makefile などを使用したプレーンなバニラ C++ プロジェクトです。

Qt Creator はプロジェクト (「eSLIME」) を正常に開き、eSL​​IME.config、eSLIME.includes、eSLIME.files の 3 つのファイルを作成しました。.pro ファイルは作成されませんでした。

c++11 呼び出しを認識しないようです。たとえば、「#include <unordered_set>」に緑色で下線が引かれ、そのようなファイルまたはディレクトリが存在しないことを示します。

.config ファイルに何かを入れることになっているのではないかと思いますが、何がわからず、Google 検索が役に立たないのです。-std=c++0x を追加しようとしましたが、うまくいきませんでした。

PS: コードが壊れすぎて今すぐビルドできないため、IDE に切り替えていました。

4

2 に答える 2

13

この質問と回答から 2 年が経過しましたが、Qt Creatorでは何も変更されていません(少なくとも Linux の場合): 最新バージョン (現在は 3.5) でも C++11 ヘッダーを解析できません。

問題は、デフォルトでQt Creator__cplusplusの内部パーサーが 201103L 未満の値に定義されていることです。STL ヘッダーでこのマクロの多くのチェックが行われます。たとえば、次のようになります。

#if __cplusplus < 201103L
#include <bits/c++0x_warning.h>
// disable all tasty functionality
#endif

まず、次の行 を*.configに追加してみました。

#define __cplusplus 201103L

何も起こらなかった。

いくつかの調査の後、最終的に適切な解決策を見つけました: *.configに書き込むだけです:

#define __cplusplus 201103

魔法のようにすべてが生き返った!

于 2015-08-27T11:20:29.727 に答える
1

Qt 5.0.2 は、任意の c++ ファイルに対して c++11 構文をサポートします。

QT 5.0.2をダウンロードするだけです(Qt Creator 2.7.0 が含まれています)。

于 2013-06-05T16:02:34.557 に答える