簡體   English   中英

QtCreator無法在Linux上找到Qxt標頭?

[英]QtCreator unable to find Qxt headers on Linux?

我正在開發一個Qt5 / QtQuick / QML應用程序,當該應用程序處於隱藏狀態或焦點不清晰時,該應用程序應該使用QxtGlobalShortcut進行熱鍵控制。 我一直在Linux上使用QtCreator進行開發,但我並不完全熟悉Linux開發,因此我可能錯過了一些簡單的知識。

首先,我嘗試從此處克隆Qxt git repo的主分支。 但是由於某種原因, 。/ configure無法根據我從makemake 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路徑中的問題或某些原因引起的,但是即使嘗試將我的項目的INCLUDE路徑更改為此問題,也可能是這樣:

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

CONFIG  += qxt
QXT     += core gui

我仍然收到相同的錯誤消息,即找不到QxtGlobal.h(已包含在QxtGlobalShortcut.h中) ..因此,我真的不確定自己做錯了什么,而且有關如何解決此問題的想法。 希望有人可以幫助我了解我跳過了哪些步驟,以便我可以繼續編碼! 謝謝!

編輯:這就是我整個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

QtCreator會為我的項目自動生成LIBS之前的所有內容。 我根據SDL2和Qxt的用戶說明添加了LIBS,CONFIG和QXT元素。

這是一個大問題:

INCLUDEPATH = usr/include

1)您正在使用當前工作目錄中的相對路徑,而不是文件系統根目錄中的/usr/include

2)您要刪除INCLUDEPATH中的所有內容,因為您設置而不是使用+=附加。

3)無論如何都無需添加該行,因為默認情況下將查找/ usr / include。

4)即使不是,您也可以使用#include "qxtglobal.h"而不是#include <qxtglobal.h>

我建議刪除該行,然后就可以了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM