3

Qt5アプリケーションでlibqxtをリンクする際に問題があります。

ドキュメントの例のようなコードを書きますが、エラーがあります。

QxtGlobalShortcut* shortcut = new QxtGlobalShortcut(this);
connect(shortcut, SIGNAL(activated()), this, SLOT(newScreenshoot()));
shortcut->setShortcut(QKeySequence("Ctrl+Shift+F12"));

私はQt 5.0.1を使用しています:

damian@damian-Lenovo-B560:~$ qmake --version
QMake version 3.0
Using Qt version 5.0.1 in /usr/lib/i386-linux-gnu

そして、 Ubuntu 13.04リポジトリからの最新のlibqxt-dev 。

次のリンカー エラーがあります。

/home/damian/Dokumenty/Programowanie/QShot/mainwindow.cpp:20: error: undefined reference to `QxtGlobalShortcut::QxtGlobalShortcut(QObject*)'
/home/damian/Dokumenty/Programowanie/QShot/mainwindow.cpp:22: error: undefined reference to `QxtGlobalShortcut::setShortcut(QKeySequence const&)'
4

1 に答える 1

1

現在、Ubuntu 13.10 で同様の問題に直面しており、アプリケーションのコンパイルに成功しました。問題は、ロガー エンジンを追加するときに受け取る SIGSEGV です。

QxtBasicFileLoggerEngine *dbg  = new QxtBasicFileLoggerEngine("debug.log");

// qxtLog takes ownership of dbg - no need to manage its memory
qxtLog->addLoggerEngine("dbg", dbg);

これを行うために、コマンドラインからQT4ですべてをコンパイルしました(デフォルトでqt5を使用するqmakeは使用しないでください):

qmake-qt4 
make

したがって、これは実際にはqt5ライブラリとqt4ライブラリの奇妙な組み合わせのようです(libqxtはqt4で/のためにコンパイルされているようです)。残念ながら、Ubuntu でプロジェクトをコンパイルするために qt4 を使用する他のオプションはありません。canonical で提起された問題があるかどうかはわかりません。

これで問題が解決し、フラストレーションが解消されることを願っています。この問題についてほとんど誰も文句を言わないことに驚いています。

于 2014-02-15T15:17:12.743 に答える