2012-07-15 5 views
2

QApplication에 commitState() 멤버 함수는 물론 commitData()가 있어야하는 QGis를 컴파일하려고합니다. 생각은, 그들은 문 경우 전처리에 배치됩니다 :C++/Qt QT_NO_SESSIONMANAGER 매크로를 정의/정의하지 않음

#ifndef QT_NO_SESSIONMANAGER 
void commitDataRequest(QSessionManager &sessionManager); 
void saveStateRequest(QSessionManager &sessionManager); 
#endif 

그러나 QT_NO_SESSIONMANAGER 정의하고, 이러한 기능은 선언이나 정의되지 않습니다. qapplication.h에서 #undef 매크로를 사용하면 정의되지 않은 참조 오류가 발생했습니다. 그래서 나는 다른 방법으로 문제를 해결해야 할 것 같습니다. 세션 관리자가 사전 빌드 된 Qt 라이브러리에 정의되어 있기 때문에 Qt 구성에 문제가 있었지만 Qt v4.8.2.2가 컴파일되지 않았기 때문에 의심 스럽습니다. 이 매크로를 정의/정의 해제하기 위해 qmake 또는 gcc에 인수를 보내야 할 수도 있습니다. 나는 관련 자료에 대한 그물 & stackoverflow 잠시 동안 검색했지만 대답을 찾을 수 없습니다.

답변

2

Qt 구성에 문제가 있습니다. 그것은 당신의 컴파일 된 Qt 세션 관리 지원 (지원 X 세션 관리, 링크 -lSM -lICE) 것 같습니다.

아마, 당신은 SM-dev에 라이브러리가 시스템에 설치되어 있지 않은 :

-l을 때 dpkg | 그렙 libsm-DEV

는 sudo apt-get을 libsm-DEV가

당신의 Qt의 소스를 컴파일 다시 시도 설치합니다. qt 구성을 실행할 때 세션 관리가 활성화되어 있는지 (예) 확인하십시오.

관련 문제