QApplication: нет такого файла или каталога с Qt5 и qtsingleapplication в Windows

У меня проблемы с компиляцией в Windows, так как я перехожу на QT 5.0.1 (с http://qt-project.org/downloads) и модуля qtsingleapplication (последняя версия из http://qt.gitorious.org/qt-solutions).

Под Linux компиляция все еще работает (Qt 4.8.2)

Не понимаю почему. Это подробный вывод qtcreator.

09:57:58: Выполнение записей для проекта Wahoo ...
09:57:58: Конфигурация добавлена, запись QСделана.
09:57:58: Дебют: "D: \ Qt \ Qt5 .0.1 \ Tools \ MinGW \ bin \ mingw32-make.exe "

D: /Qt/Qt5.0.1/Tools/MinGW/bin/mingw32-make -f Makefile.Release
mingw32-make [1]: вход в каталог 'C: / Documents and Settings / crazy / Bureau / Kowmedia.Wahoo / src / Build-Release / выпуск '

г ++ -c -pipe -fno-Keep-рядный dllexport -O2 -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -DQT_NEEDS_QMAIN -I. ... \ wahoo -I ".... \ wahoo \ qtsingleapplication \ src" -I "D: \ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ include" -I "D: \ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ include \ QtWebKit "-I" D: \ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ include \ QtWidgets "-I" D: \ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ include \ QtXml "-I" D: \ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ include \ QtNetwork "-I" D: \ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ include \ QtGui "- I "D: \ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ include \ QtCore" -I "выпуск" -I "." -Я"." -I "D: \ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ mkspecs \ win32-g ++" -o release \ qtsingleapplication.o .... \ wahoo \ qtsingleapplication \ src \ qtsingleapplication.cpp

г ++ -pipe -fno-Keep-рядный dllexport -O2 -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -DQT_NEEDS_QMAIN ../ .. /wahoo/qtsingleapplication/src/qtsingleapplication.cpp -o ../../wahoo/qtsingleapplication/src/QtSingleApplication

В файле, включенном из ../../wahoo/qtsingleapplication/src/qtsingleapplication.cpp:42:0:
../../wahoo/qtsingleapplication/src/qtsingleapplication.h:44:24: фатальная ошибка: QApplication: нет такого файла или каталога

компиляция прекращена.

‹Builtin›: рецепт для цели '../../wahoo/qtsingleapplication/src/QtSingleApplication' не удалось
mingw32-make [1]: ** [../../wahoo/qtsingleapplication/src/QtSingleApplication] Ошибка 1
mingw32-make [1]: выход из каталога 'C: / Documents and Settings / crazy / Bureau / Kowmedia.Wahoo / src / Build-Release / release'
makefile: 34: рецепт целевого 'выпуска 'не удалось
mingw32-make: ** [выпуск] Ошибка 2
09:57:59: Le processus "D: \ Qt \ Qt5.0.1 \ Tools \ MinGW \ bin \ mingw32-make.exe" s Это конец с кодом 2.
Ошибка при сборке / развертывании проекта Wahoo (комплект: Desktop Qt 5.0.1 MinGW 32bit) Lors de l'écution de l'étape "Make"

Присутствуют все файлы, опция -I "D: \ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ include \ QtWidgets" тоже. QtCreator может найти файл, если я просматриваю исходный код. Так что я немного потерялся ...

заранее спасибо


person Sébastien Bémelmans    schedule 08.03.2013    source источник
comment
Возможно, вы пропустили добавление includepath при компиляции QtSingleApplication   -  person Blood    schedule 08.03.2013
comment
Вы придумали решение этой проблемы? Я спотыкаюсь с ним в Qt 5.4 в Windows (отлично работает с Qt 5.4 в Linux). Отслеживание проблемы, похоже, хотя строка Makefile.Release читает $(CXX) -c $(CXXFLAGS) $(INCPATH) ../qt-solutions/qtsingleapplication/src/qtsingleapplication.cpp, фактическая команда - g++ (...) -DQT_WIDGETS_LIB -DQT_GUI_LIB (...) ../include-3rdparty/qt-solutions/qtsingleapplication/src/qtsingleapplication.cpp -o ../include-3rdparty/qt-solutions/qtsingleapplication/src/QtSingleApplication, поэтому $(INCPATH) отсутствует   -  person RazZziel    schedule 13.02.2015
comment
Я наконец решил это, удалив строку greaterThan(QT_MAJOR_VERSION, 4): QT *= widgets в qtsingleapplication / src / qtsingleapplication.pri   -  person RazZziel    schedule 18.02.2015


Ответы (4)


... QApplication: нет такого файла или каталога ...

попробуйте добавить

QT += widgets

в вашем .pro файле. У меня было такое же сообщение ... Похоже, из 5.0 приложения на основе Qt не любят виджеты по умолчанию ... Все ли перешли на QML?

PS: теперь как следующий пункт в этом квесте - у меня QPrinter не найти)

person Denjs    schedule 25.03.2013
comment
о, у меня такая же проблема, вроде переименовали заголовки или что там еще i.imgur.com/HS9gUC9. png, как лекарство возвращаюсь на предыдущую версию Qt - person Tebe; 13.07.2013
comment
При использовании Qt Creator помогает вручную выполнить Сборка ›Запустить qmake после добавления виджетов. Также убедитесь, что #include <QApplication>, а не #include <QtGui/QApplication>. Не нужно ни к чему возвращаться, просто выполните поиск / замену в своем проекте. - person Adversus; 13.02.2015

Это говорит о том, что вы неправильно настроили пути поиска библиотек в своей среде IDE. Библиотеки QT SDK не найдены. Вы все установили с помощью инструментов QT и / или руководства по установке?

«QApplication» - это один из файлов заголовков, включенных #include <qapplication>. В зависимости от того, как и какой SDK вы установили, он может находиться, например:

Nokia SDK с Carbide / Eclipse:

C:\????\Nokia\devices\Nokia_Symbian_Belle_SDK_v1.0\epoc32\include\mw\qtgui

Установщик QtCreator и QT SDK:

C:\????\QtSDK\Symbian\SDKs\SymbianSR1Qt474\include\QtGui

куда ???? обозначает место, которое вы выбрали при установке инструментов. Сначала проверьте, есть ли у вас файл.

Если он у вас есть, и если он не поврежден, и если вы не ошиблись буквами дисковода и т. Д., То проверьте файлы проекта QT и убедитесь, что у вас действительно есть все импортированные и включенные файлы правильно. Может быть, вы забыли какой-то суффикс "\ include", а может, у вас его слишком много? Конфигурации сборки LINUX и WIN32 обычно различаются по многим параметрам, очень легко случайно смешать некоторые условия, которые задают пути.

РЕДАКТИРОВАТЬ:

Спасибо за обновления! Пути действительно выглядят нормально

Я перечитал ваш журнал ошибок, и все выглядело нормально, пока я немного его не отформатировал. Выскочило что-то странное. Посмотрите на первый вызов G ++ и сравните его со вторым, который завершился неудачей.

На втором отсутствуют все настройки путей. Но это нормально. Первый выполняет компиляцию, второй - линковку. Отличается g++ -c по сравнению с g++ без параметра "-c". Но посмотрите на ФАЙЛЫ, переданные в G ++.

Первый компилирует qtsingleapplication.cpp в qtsingleapplication.o, а второй пытается связать qtsingleapplication.cpp с -o QtSingleApplication.

Я думаю что:

  • либо вторая строка забыла параметр "-c" и все -I пути
  • или во второй строке указан недопустимый входной файл и должно быть qtsingleapplication.o вместо .cpp

Я предполагаю, что у вас действительно есть некоторые переключатели / условные ошибки в ваших qtprojs для случаев: win32 ... Мне очень жаль, что я не могу рассказать вам больше, на данный момент мне пришлось бы попробовать скомпилировать проект самостоятельно и исследовать make-файлы / qtprojs. Попробуйте выполнить обратную трассировку, как генерируется вторая строка и какие переменные makefile / qtproj используются, а затем дважды или даже трижды проверьте настройки вашего проекта. Делайте это не в среде IDE, а в реальных используемых файлах проекта. IDE иногда скрывает от вас некоторые условия и настройки, особенно это нравится QT Creator ..

person quetzalcoatl    schedule 08.03.2013
comment
D: \ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 - это базовый путь для SDK. Полный путь для #include ‹QApplication›: D: \ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ include \ QtWidgets \ QApplication, файл существует. QTDIR установлен в D: \ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 в параметрах компилятора. - person Sébastien Bémelmans; 08.03.2013
comment
Спасибо, дорожки действительно выглядят нормально. Я не уделил достаточно внимания содержимому журнала, извините. Я перечитал журнал и обновил ответ. - person quetzalcoatl; 08.03.2013

Я тоже столкнулся с этой проблемой.

Как только я добавил

QT += widgets

как предложил Дендж, мне также нужно было добавить:

INCLUDEPATH += $$PWD/../qtsingleapplication-2.6-opensource/src/

Где находятся исходные файлы QtSingleApplication.

person gollumullog    schedule 13.02.2014

Я новичок в Qt. И когда я пробую первую программу, после qmake -project qmake hello.pro

после 'make' произошла ошибка: файл 'QApplication' не найден

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

решение - изменить файл .pro. Добавьте следующие две строки:

QT + = основной графический интерфейс

большеThan (QT_MAJOR_VERSION, 4): QT + = виджеты

person Sublele    schedule 18.08.2016