2016-11-10 3 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 유지 관리 도구를 시작할 때 다음과 같은 경고 메시지가 나타납니다.

답변

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(); 

에서 전화를 변경할 수 있습니다하지만 당신은 아마이 일을 해결의 계기로 다른 링커 오류가 발생합니다 해결했습니다.

관련 문제