Qt Creator下的Libqxt

时间:2009-10-14 11:37:07

标签: qt qt4 qt-creator

我想创建一个需要全局快捷方式的小应用程序。所以,我已经下载了当前版本的libqxt(0.5.1)并在Qt Creator中作为项目打开。

Libqxt以这种方式编译没有问题,所以我认为在项目的依赖项中添加它会在构建中自动添加,就像Eclipse与JAR库一样(我知道它们是不同的IDE但它似乎是他们的共同特征)。

会发生什么? Qt Creator在我的项目之前在需要时编译qxt,但是当我想要包含它的标题时,Qt Creator会一直警告我它找不到它们。

可能我错过了正确的标题名称(我试过qxt文档中显示的标题:http://doc.libqxt.org/0.5.0/classQxtGlobalShortcut.html

顺便说一句,我查看了全局快捷方式的代码,我想我可以将其删除并在我的应用程序中使用它,我将信任qxt团队并打开我的应用程序的代码。

2 个答案:

答案 0 :(得分:11)

from the documentation

将以下行添加到.pro文件中:

 CONFIG  += qxt
 QXT     += core gui

注意:在Linux上构建Qxt时,不要忘记执行sudo make install,否则这个小小的魔法可能无法正常工作。

答案 1 :(得分:6)

Qt Creator不知道如何向项目公开不同的库。这是开发人员的职责。在构建主项目之前,依赖性确保仅已经构建了所提到的项目。

您真正担心的是在没有正确安装的情况下使用Qxt。假设已经运行了configure并且libqxt已经构建(使用Qt Creator或通过qmake + make手动),我的解决方案是添加以下代码段(明显的QXT_DIR自定义) )到.pro文件:

QXT_DIR = $${IN_PWD}/../libqxt-0.5.1
LIBS += -L$${QXT_DIR}/deploy/libs
INCLUDEPATH += $${QXT_DIR}/deploy/include
for(module, QXT) {
 MODNAME = $$upper($$replace(module, "(.).*", "\1"))$$replace(module, "^.", "")
 INCLUDEPATH += $${QXT_DIR}/deploy/include/Qxt$${MODNAME}
 INCLUDEPATH += $${QXT_DIR}/src/$${module}
 win32:CONFIG(debug, debug|release):MODNAME = $$join(MODNAME,,,d)
 LIBS += -lQxt$${MODNAME}
}

不幸的是,我不确定它是否适用于复杂的项目。

默认情况下,Qxt是在发布模式下构建的,但Qt Creator使用调试模式,它会导致项目的二进制文件损坏,具体取决于Windows下的Qxt。您必须将项目切换到发布模式或在调试模式下构建Qxt(运行configure -debug并重建Qxt)。

最后一件事:在Windows中,即使您成功构建了项目,也无法从Qt Creator运行您的项目。您必须从Qwt*.dlld目录复制所需的libqxt-0.5.1/deploy/libs个文件(如果您处于调试模式,请使用your_project/(release|debug) - 后缀版本)。