У меня проблема со ссылками libqxt в Qt5 приложение.
Я пишу код, как в примере в документации, но у меня есть ошибки.
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
И последний libqxt-DEV от Ubuntu 13.04 репозиторий.
У меня есть следующие ошибки компоновщика:
/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&)'
Сейчас я сталкиваюсь с подобной проблемой в 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 из командной строки (не используйте qmake, который по умолчанию использует qt5):
qmake-qt4
make
Так что это действительно странная комбинация библиотек qt5 и библиотек qt4 (libqxt, похоже, скомпилирован с / для qt4). К сожалению, у меня нет другого варианта использования qt4 для компиляции проекта в Ubuntu. Я не знаю, есть ли проблема, поднятая в каноническом.
Надеюсь, что это спасет некоторые проблемы и устранит некоторые разочарования. Я удивлен, что почти никто не жалуется на эту проблему.
Других решений пока нет …