2013-05-05 62 views
3

一個QT5應用程序鏈接libqxt我有一個QT5應用鏈接libqxt問題。在Ubuntu上

我在文檔中編寫了一個類似於示例中的代碼,但出現錯誤。

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

我使用Qt的5.0.1

[email protected]:~$ 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&)' 
+0

看起來像你沒有*鏈接* libqxt。只包括庫的標題只是兩個步驟中的一個,鏈接它是第二步。然而,我不知道該怎麼做才能鏈接這個庫,也許看看文檔。 – leemes 2013-05-05 18:33:42

+0

我已經添加到我的* .pro文件CONFIG + = qxt QXT + = core gui如文檔中所述。 – user2263192 2013-05-05 18:43:36

+0

你能告訴我qmake輸出嗎?你是否也嘗試過與Qt4?也許qxt只與Qt4兼容(或者這個庫的特定版本是用Qt4構建的......) – leemes 2013-05-05 18:46:49

回答

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(請勿使用qmake的,默認情況下QT5使用):

qmake-qt4 
make 

所以這似乎確實是qt5 libs與qt4 libs的奇怪組合(libqxt似乎是用/ for qt4編譯的)。不幸的是,我沒有其他的選擇來使用qt4來編譯Ubuntu上的項目。我不知道在規範中是否存在問題。

希望這可以節省一些麻煩並消除一些挫折感。我很驚訝地發現幾乎沒有人抱怨這個問題。