2016-11-10 138 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的官方網站下載並使用。運行文件安裝。當我運行一個定位於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/CPP是不是在我Qt5.7核心。有關如何解決它的任何想法?需要安裝其他的東西嗎?隨着音符,當我開始Qt的維護工具,我得到一個警告消息,指出以下幾點:

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

回答

0

通過谷歌發現這裏正在添加此。我遇到過同樣的問題。

的API從默認參數
QString QJsonValue::toString(const QString & defaultValue = QString()) const
改爲two overloads
QString QJsonValue::toString() const
QString QJsonValue::toString(const QString &defaultValue) const

你應該建立與你想要支持的老版本的標頭。但是,如果你只需要固定這一個錯誤,你可以從剛剛

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

改變呼叫

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

但你可能會得到一些其他的連接錯誤在固定這一項的喚醒。