Qt 5.3. QtWidgets: нет такого файла или каталога #include & lt; QtWidgets & gt;

Я хочу скомпилировать пример Qt. Я получаю сообщение об ошибке QtWidgets: нет такого файла или каталога #include

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets - does not help
QT += widgets                                   - does not help
INCLUDEPATH += /opt/Qt/5.3/Src/qtbase/include/  - does not help

Qt 5.3. Ubuntu 14.04 x64.

6

Решение

Вы должны дважды проверить, что вы выполнили все эти шаги:

  • Модуль установлен

  • moreThan (QT_MAJOR_VERSION, 4): QT + = виджеты

  • Вы перезапустите Qt 5 qmake.

Сказав это, я хотел бы напомнить вам, что включать весь модуль не очень хорошая идея, поскольку он включает в себя все связанные с виджетами вещи. Попробуйте сузить его до заголовков, которые вам действительно нужны.

7

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

Как вы заметили, структура каталогов Qt изменилась между Qt4 и Qt5. Заголовок QWidget перемещен в каталог QtWidgets. Попробуйте добавить

INCLUDEPATH += /opt/Qt/5.3/Src/qtbase/include/QtWidgets

Если это не помогает, попробуйте найти заголовок вручную, используя

find /opt/Qt/5.3/Src/qtbase/ -name QWidget

и и каталог, в котором он находится, чтобы включить

Редактировать на основе комментариев от финального конкурса.

Я согласен, что обходные пути, как правило, плохая идея. Чтобы проверить, где QT, ваша установка ищет заголовочные файлы и библиотеки qt5. Создайте минимальный проект.

#include <QApplication>
#include <QtWidgets>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget w;
w.show();
app.exec();
}

Создайте проект и добавьте QT + = виджет

/opt/Qt/5.3/Src/qtbase/bin/qmake -project

Файл проекта

######################################################################
# Automatically generated by qmake (3.0) Thu Jul 10 13:05:17 2014
######################################################################

TEMPLATE = app
TARGET = so_qtwidgets
INCLUDEPATH += .

QT += widgets

# Input
SOURCES += main.cpp

Создать файл make

/opt/Qt/5.3/Src/qtbase/bin/qmake

Флаг интересного виджета добавляет:

  • В моем случае -I / usr / include / qt5 / QtWidgets -I / usr / include / qt5 / QtGui to INCPATH
  • -Переменная DQT_WIDGETS_LIB to DEFINES.
  • -lQt5Widgets -lQt5Gui для библиотек.

Единственная часть, которая должна отличаться, это пути к QtWidgets и QtGui. Если это неправильно, я бы попробовал переустановить Qt.

6

Все это выглядит очень неправильно, и у меня была та же самая проблема с 5.6, но ответ мог быть намного проще.

Если вы загружаете много примеров, вы можете сначала прийти к редактору или к тому, кем вы были, в первую очередь. Если пример был загружен в первый раз, его нужно будет «настроить», который находится на боковой вкладке проекта, которая должна представить вам «Настроить», а не «Построить» & Бежать’. То, что он не всегда прыгает прямо, есть недостаток, но также и включение примеров без поддержки по умолчанию (Desktop OpenGL и iOS для двоих).

Пока это не сделано, он не разрешит никаких зависимостей вне непосредственного проекта, так как используемые библиотеки зависят от того, какой компилятор / цель используется (например, MSVS, GNUCC, MinGW, 32 / 64bit).

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