2016-11-10 13 views
0

Linux上でQt 5.7を使用してサンプルプロジェクトを構築しようとしています。以前はQt 5.4.2で問題なく同じプロジェクトが構築されていました。私はQtの5.7にしようとすると、私は以下のエラーを取得:Qt - 未定義のQJsonValue :: toStringへの参照

undefined reference to `QJsonValue::toString() const' 

私はQtのメンテナンスツールでQt5.7をインストールしようとしたともQtの公式サイトからダウンロードして、.RUNファイルを使用してインストールしています。私はqjsonvalueする見つけ実行すると、私は以下の結果を得る:前の結果とよる

$ locate qjsonvalue 
/opt/Qt/5.4/Src/qtbase/include/QtCore/qjsonvalue.h 
/opt/Qt/5.4/Src/qtbase/src/corelib/json/qjsonvalue.cpp 
/opt/Qt/5.4/Src/qtbase/src/corelib/json/qjsonvalue.h 
/opt/Qt/5.4/android_armv7/include/QtCore/qjsonvalue.h 
/opt/Qt/5.4/android_x86/include/QtCore/qjsonvalue.h 
/opt/Qt/5.4/gcc_64/include/QtCore/qjsonvalue.h 
/usr/include/qt5/QtCore/qjsonvalue.h 
/usr/share/doc/qt5/qtcore/qjsonvalue-members.html 
/usr/share/doc/qt5/qtcore/qjsonvalue.html 

を、私はqjsonvalue.h becuase何かをインストールする必要があるようだ/ cppが私のQt5.7コアではありません。どのようにそれを解決するための任意のアイデア?何か他のものをインストールする必要がありますか? Qt Maintenance Toolを起動すると、次のような警告メッセージが表示されます。

Your installation seems to be corrupted. Please consider re-installing from scratch. 

答えて

0

googleでこれを知ることができます。私も同じ問題がありました。

APIはtwo overloadsにデフォルト引数
QString QJsonValue::toString(const QString & defaultValue = QString()) const
から変更しました。
QString QJsonValue::toString() const
QString QJsonValue::toString(const QString &defaultValue) const

あなたがサポートする最も古いバージョンのヘッダを構築する必要があります。あなただけが必要な場合でも、このつのエラーはあなただけで

QString str = someval.toString(QString()); 

QJsonValue someval; 
QString str = someval.toString(); 

からの呼び出しを変更することができますしかし、あなたはおそらく、このいずれかを固定するきっかけに他のいくつかのリンカエラーを取得します固定します。