2016-12-21 3 views
0

centos 6.7を実行しているワークステーションでQt 5.6からQt 5.7に移行したいと思います。 Qt 5.6ではすべてがうまくいっていますが、ダウンロードしてインストールした後、Qt 5.7の次の問題に直面しています。Qt 5.7.0とgcc 4.4.7 on centos 6.7

私は、インストールを確認するためにelasticnode例を実行しようとしていますが、私は次のビルドエラーがあります。

cc1plus: error: unrecognized command line option "-std=gnu++11"

このエラーは4.4.7であるとしませんGCCのバージョンに関係していますこのオプションを認識します。 Qt 5.7がC++ 11機能を有効にするために使用するコンパイラフラグは-std=gnu++11であり、Qt 5.6では-std=gnu++0xであり、この最後のフラグだけがgccによって認識されます。

elasticnodesの.proファイルには何も設定されていないので、ドキュメントhttp://doc.qt.io/qt-5/qmake-variable-reference.html#configに記載されているようにc + 11がデフォルトで無効になっていると仮定していますが、これは最終的に生成されるgccコマンドラインqmake。

私の質問は、-std=gnu++11の代わりに-std=gnu++0xという新しいフラグを削除し、古いフラグを.proファイルに戻す方法です。

私は次の行を追加しようとしています:

CONFIG - = C++ 11

QMAKE_CXXFLAGS + = -std = gnuの++ 0xの

をしかし、私はこのエラーを取得:

/opt/Qt5.7.0/5.7/gcc_64/include/QtCore/qbasicatomic.h:61: error: #error "Qt requires C++11 support"

このフラグを正しく設定する方法を知っている人はいますか?

+0

このような古いコンパイラは5.7でもサポートされていますか? – dtech

+0

http://doc.qt.io/qt-5/supported-platforms.htmlによると、gcc 4.9.1がサポートされていますが、可能であればコンパイラをアップグレードしたくない場合があります – Scab

+0

IIRC少なくとも4.8.xが必要ですそれはソースから構築した場合です。プレビルド・バージョンが古いコンパイラで動作する可能性は非常に低いです。エラーが示すように、C++ 11コンパイラが必要です。 – dtech

答えて

1

Qt 5.7にはC++ 11コンパイラが必要です。したがって、サポートされているGCCの最小バージョンはGCC 4.6です(ただし、上位バージョンはで、が推奨されます)。より良いコンパイラを得るために、devtoolset(例えば、devtoolset-2、hereを参照)をインストールすることができます。

+0

ありがとうと確かに、私はcentos 6.7でGCCを使ってQt 5.7を使うことは他にありません。 – Scab

関連する問題