QtCreator не может найти заголовки Qxt в Linux?

Я работаю над приложением Qt5 / QtQuick / QML, которое должно использовать QxtGlobalShortcut для управления горячими клавишами, когда приложение скрыто или не в фокусе. Я разрабатывал его с помощью QtCreator для Linux, и я не совсем знаком с разработкой для Linux, поэтому, возможно, я упустил что-то простое.

Во-первых, я попытался клонировать главную ветвь репозитория Qxt. отсюда. Но по какой-то причине ./ Configure не удалось создать make-файл из-за ошибки, полученной от делать а также сделать установку. Я не очень опытен в создании чужих проектов / библиотек из исходного кода, а также из того, что я получал. ./ Configure не был достаточно конкретным для меня, чтобы выяснить, что происходит ..

Поэтому вместо этого я решил захватить libqxt-DEV из (X) репозитория Ubuntu APT. После того, как он закончил установку, я добавил эти строки в конец моего файла проекта 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

Я думаю, что это вызвано проблемой в пути моего проекта ВКЛЮЧИТЬ или что-то, но даже попытавшись изменить мои проекты, ВКЛЮЧИТЕ путь к этому:

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

CONFIG  += qxt
QXT     += core gui

Я все еще получаю то же сообщение об ошибке, что QxtGlobal.h (который #include в QxtGlobalShortcut.h) не может быть найден..
Итак, я действительно не уверен, что сделал неправильно, и у меня нет идей о том, как это исправить.
Надеюсь, кто-то может помочь мне понять, какой шаг я пропустил, чтобы я мог продолжить кодирование! Спасибо!

РЕДАКТИРОВАТЬ: Вот что у меня есть для всего моего .pro проекта Qt:

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 для моего проекта. Я добавил элементы LIBS, CONFIG и QXT в соответствии с инструкциями пользователя для SDL2 и Qxt.

0

Решение

Это большая проблема здесь:

INCLUDEPATH = usr/include

1) Вы используете относительный путь из текущего рабочего каталога, поэтому не /usr/include из корня файловой системы.

2) Вы удаляете все в INCLUDEPATH, потому что вы устанавливаете, а не добавляете с +=,

3) Нет необходимости добавлять эту строку, так как / usr / include будет найден по умолчанию.

4) Даже если это не так, у вас есть #include "qxtglobal.h" вместо #include <qxtglobal.h>,

Я бы предложил удалить эту строку, и тогда она должна просто работать.

0

Другие решения


По вопросам рекламы [email protected]