QApplicationにcommitData()とsaveState()メンバー関数が必要なQGisをコンパイルしたいと思います。考えてみれば、それらはプリプロセッサのifステートメントに入れられます。
#ifndef QT_NO_SESSIONMANAGER
void commitDataRequest(QSessionManager &sessionManager);
void saveStateRequest(QSessionManager &sessionManager);
#endif
ただし、QT_NO_SESSIONMANAGER
は定義されており、これらの関数は宣言も定義もされていません。qapplication.hでマクロを#undefすると、未定義の参照エラーが発生しました。ですから、別の方法で問題を解決する必要があるようです。セッションマネージャーはビルド済みのQtライブラリで定義されているため、使用したQt構成に問題があるかどうかは疑問ですが、Qtv4.8.2.2をコンパイルしたQtにはありません。このマクロを定義/定義解除するために、qmakeまたはgccにいくつかの引数を送信する必要がある可能性もあります。ネットとstackoverflowで関連資料をしばらく検索しましたが、答えが見つかりませんでした。