QMainWindow: Нет Такого Файла Или Каталога

Я использую Qt Creator 3.5.1 и QT 4.8.2 на хост-машине Ubuntu 14.04 LTS, я настроил свой комплект BeagleBone для кросс-компиляции ARM следующим образом: QT for BeagleBone

Я эти шаги, но я получаю ошибку при попытке скомпилировать проект QT по умолчанию QMainWindow Error

Я что-то пропустила? Если он не найден, он не находится в том месте, где ищет компилятор. как это исправить это?

вот мой файл проекта

Picture of my project

5 ответов


Mybe произошла какая-то ошибка при построении qt из источника, или чего-то не хватает. Попробуйте экземпляр QMainWindow поиск.h в qt включают dir. Кажется, это в /usr/local/qt4.8.2-armhf/include. Например, вы можете искать вот так find * /usr/local/qt4.8.2-armhf/include/ | grep QMainWindow.


использование Qt 5.8.0 на Win 7 / MSVC2015x64bit;

у меня была та же проблема, и я нашел способ ее исправить, даже если она не самая умная:

1) Откройте имя проекта.pro файл

2) между QT += core gui и greaterThan(QT_MAJOR_VERSION, X): QT += widgets вставить QT += widgets так что эта часть выглядит примерно так:

... QT += core gui QT += widgets greaterThan(QT_MAJOR...

сохранить и закрыть .pro файл и ждать Qt для автоматического чтения файл-изменяет и обновляет себя.
(Если у вас есть deaktivated это попробовать перезапустить Qt)

а также это-замена " X " на greaterThan(QT_MAJOR_VERSION, X): QT += widgets с номером предварительной версии отлично работает для меня. (X = your_major_version - 1)

(в случае использования Qt 5.X поместите 4 вместо 5, используя Qt 3.X заменить 3 на 2 и так далее...)

Я не знаю, работает ли это также для других платформ...

Я надеюсь, что смогу помочь хотя бы 1 человеку, у которого такая же проблема. ;)

Приветствую Zitro


прежде всего вам нужно убедиться, что кросс-компилятор работает, компиляция hello world:std::cout << "hi\n" и запустить на устройстве с помощью cross comipler gcc из командной строки.

второй шаг - убедиться, что qmake из cross compiled Qt работает так, как ожидалось, запустите /usr/local/qt4.8.2-armhf/bin/qmake path/to/your/pro/file && make если все работает, то следующий шаг

В-третьих, наконец настройте Qt Creator

посмотреть здесь: http://developer.toradex.com/how-to/how-to-set-up-qt-creator-to-cross-compile-for-embedded-linux

вам нужно установить sysroot в правильное значение, например, в моем случае это:

/usr/местные/oecore-i686 в/sysroots/armv7ahf-ВФП-неон-Ангстрем-ОС linux-gnueabi/

внутри этого каталога есть " bin " и "lib", полные исполняемых файлов arm и библиотек arm, это то, что "sysroot", это часть вашей файловой системы устройства, клонированной к вашему кросс-компилятор, который поможет вам связать ваши приложения. Также убедитесь, что вы установили правильный путь к qmake для кросс-компиляции в настройках Qt creator, он должен выглядеть так:/usr/local/qt4.8.2-armhf/bin/qmake


возможно, ваша версия Qt Creator устарела. Проекты могут быть повреждены при установке несовместимой с ними версии Qt Creator. Вы можете скачать последнюю версию Qt Creator в центре программного обеспечения.

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

Я нашел это; возможно, вы захотите взглянуть на него: derekmolloy.ie/beaglebone/qt-with-embedded-linux-on-the-beaglebone/#Source_Code


в windows проверьте, что ваша папка проекта не имеет странных символов, таких как: (,) или # ...