我想编译QGis,它需要QApplication具有commitData()以及saveState()成员函数。思想,它们被放在一个预处理if语句:C++/Qt定义/未定义QT_NO_SESSIONMANAGER宏
#ifndef QT_NO_SESSIONMANAGER
void commitDataRequest(QSessionManager &sessionManager);
void saveStateRequest(QSessionManager &sessionManager);
#endif
但QT_NO_SESSIONMANAGER
定义和这些功能都没有宣布,也没有定义。当我在qapplication.h中调用宏时,我收到了未定义的引用错误。所以,我似乎应该以另一种方式解决问题。 我怀疑是否有使用Qt配置的问题,因为会话管理器是在预建的Qt库中定义的,但它不在Qt编译的Qt v4.8.2.2中。我也应该向qmake或者gcc发送一些参数来定义/取消定义这个宏。我搜索了一段时间在网络& stackoverflow相关的材料,但我没有找到答案。