QtCreator无法在Linux上找到Qxt标头?

时间:2014-05-23 02:13:19

标签: c++ linux qt qt-creator libqxt

我正在使用Qt5 / QtQuick / QML应用程序,当应用程序被隐藏或失焦时,它应该使用QxtGlobalShortcut进行热键控制。我在Linux上使用QtCreator开发它,我并不完全熟悉Linux开发,所以我可能错过了一些简单的东西。

首先,我尝试克隆Qxt git repo from here的主分支。但由于某种原因, ./ configure 无法根据我从 make make install 获得的错误创建一个makefile。我从源代码构建其他人的项目/库方面不是很有经验,而我从 ./configure 获得的输出对我来说还不够具体。发生了什么......

相反,我决定从(X)ubuntu的APT回购中获取 libqxt-dev 。安装完成后,我将这些行添加到QtCreator项目文件的底部:

INCLUDEPATH = usr/include

CONFIG  += qxt
QXT     += core gui

在完全基于Qxt文档的示例设置基本全局快捷方式之后。我收到了一些编译错误。首先,Qxt似乎使用:

#include <QxtGlobalShortcut>

但QtCreator无法找到该文件,因此我将其更改为:

#include <qxt/QxtGui/QxtGlobalShortcut>

现在它可以找到Global Shortcut类标题,QtCreator不再对我抱怨。不幸的是,在编译时,QtCreator出现了这条错误消息:

/usr/include/qxt/QxtGui/qxtglobalshortcut.h:28: error: qxtglobal.h: No such file or directory

我认为这是由我项目的INCLUDE路径中存在的问题造成的,但即使尝试更改我的项目,也包括以下路径:

INCLUDEPATH = usr/include
        usr/include/qxt/QxtCore
        usr/include/qxt/QxtGui

CONFIG  += qxt
QXT     += core gui

我仍然得到相同的错误消息,即无法找到QxtGlobal.h(在QxtGlobalShortcut.h中#included)。 所以,我真的不确定自己做错了什么,而且我对如何解决这个问题提出了异议。 希望有人可以帮助我理解我跳过的步骤,以便我可以继续编码!谢谢!

编辑:这是我对整个Qt项目.pro文件的所有内容:

TEMPLATE = app

QT += qml quick

SOURCES += main.cpp \
    Gamepad.cpp \
    Script.cpp \
    System.cpp

RESOURCES += qml.qrc

# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =

# Default rules for deployment.
include(deployment.pri)

HEADERS += \
    Gamepad.h \
    Script.h \
    System.h

LIBS += -L/usr/lib -lSDL2

CONFIG  += qxt
QXT     += core gui

LIBS之前的所有内容都是由QtCreator为我的项目自动生成的。我根据SDL2和Qxt的用户说明添加了LIBS,CONFIG和QXT元素。

1 个答案:

答案 0 :(得分:0)

这是一个很大的问题:

INCLUDEPATH = usr/include

1)您正在使用当前工作目录的相对路径,因此不是/usr/include来自文件系统的根目录。

2)您正在删除INCLUDEPATH中的所有内容,因为您设置的不是附加+=

3)无论如何都不必添加该行,因为默认会查找/ usr / include。

4)即使不是,也有#include "qxtglobal.h"而不是#include <qxtglobal.h>

我建议删除该行,然后才能正常工作。