2017-03-09 9 views
0

에 'QVariant'변환 기존 Qt는 4, 나는에서 보면 Qt는 창조주 4.2.1 연타 7.0 (애플) 64 비트선언되지 않은 식별자 I가 4.7에서 5.8로 Qt는 레거시 코드를 변환 할 필요가 5

에 컴파일 오류가 있습니다. CPP cpp를 ./src/classes/queries.cpp:283:15에

bool queries::insert(const QString &tableName_, const QMap<QString, QVariant> &values_) const 

오류 파일 : 오류 : 쿼리 '의 모든 선언과 일치하지 않는 아웃 오브 라인'삽입 '의 정의 ''삽입 '을 가리키는 오류

L ooking .H ../src/classes/queries.h:157:64의 헤더 파일

bool insert(const QString &tableName_, const QMap<QString, QVariant> &values_) const; 

오류 : 오류 : 선언되지 않은 식별자의 사용 'QVariant' 오류를 가리키는 'QVariant>'

Found similar Stackoverflow query

OK ... 그래서 대체 무엇인가?

+1

QVariant가 헤더 파일에 포함되어 있습니까? '#include ' –

+0

감사합니다 CP, 그게 다야 !!! 해결 된 – bullflag

답변

3

정의가 구문 분석 될 때 QVariant은 알려진 유형입니다. 그러나 선언문을 구문 분석 할 때 QVariant은 아직 알려져 있지 않습니다. 따라서 선언은 유효하지 않으며 컴파일러는이를 무시할 수 없습니다.

헤더 파일에 #include <QVariant>을 추가하여 수정하십시오.

일부 Qt 헤더에 <QVariant>이 포함되어 있었기 때문에 파손되었습니다. Qt가 업데이트됨에 따라 그러한 상호 의존성이 최소화되었고 머리글에는 독립형 번역 단위로 컴파일 된 경우 해당 헤더를 유효하게 만드는 데 필요한 최소값 만 포함되었습니다. 따라서 깨진 코드는 버그가 노출되어 있습니다.

+0

감사 KO, 설명 도움이됩니다! 이 픽스가 필요한 이유를 알려주세요. – bullflag