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: Конфигурацията е променена, етапът QMake е задушен.
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/release'

g++ -c -pipe -fno-keep-inline-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 освобождаване\qtsingleapplication.o ....\wahoo\qtsingleapplication\src\qtsingleapplication.cpp

g++ -pipe -fno-keep-inline-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_LI B -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: Процесът "D:\Qt\Qt5.0.1\Tools\MinGW\bin\mingw32-make.exe" s 'est terminé avec le code 2.
Грешка при изграждане/разгръщане на проект Wahoo (комплект: Desktop Qt 5.0.1 MinGW 32bit) Лорс на изпълнението на l'etape "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, помага ръчно да направите Build › Run 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 Project и проверете дали наистина всички импортирания и включвания са зададени правилно. Може би сте забравили някакъв суфикс "\include" или може би имате прекалено много? Конфигурациите за изграждане на LINUX и WIN32 обикновено се различават в много настройки, много е лесно случайно да смесите някои условни условия, които задават пътищата

РЕДАКТИРАНЕ:

Благодаря за актуализацията! Пътищата наистина изглеждат добре

Прочетох отново вашия регистър на грешките и всичко изглеждаше добре, докато не го преформатирах малко. Изскочи нещо странно. Моля, погледнете първото извикване на G++ и го сравнете с второто, което е неуспешно.

Във втория липсват всички настройки на пътищата. Но това е нормално. Първият извършва компилация, вторият е свързване. Различава се по g++ -c спрямо g++ без параметър "-c". Но вижте ФАЙЛОВЕТЕ, предадени на G++.

Първият компилира qtsingleapplication.cpp в qtsingleapplication.o, докато вторият се опитва да свърже qtsingleapplication.cpp в -o QtSingleApplication.

Мисля, че:

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

Предполагам, че наистина имате някои превключватели/условни объркани във вашите qtprojs за случаите :win32.. Съжалявам, че не мога да ви кажа повече, на този етап ще трябва да опитам да компилирам проекта сам и да проуча makefiles /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

както Denjs предложи, аз също трябваше да добавя:

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

Което е местоположението на изходните файлове на QtSingleApplication.

person gollumullog    schedule 13.02.2014

Нов съм в Qt. И когато пробвам първата програма, след qmake - проект qmake hello.pro

появи се грешка след 'make': файлът 'QApplication' не е намерен

но със същия код може да отстранява грешки успешно в Qt Creator. същата грешка възникна, когато исках да го пусна.

решението е да модифицирате .pro файла. Добавете следните два реда:

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

по-голямо от (QT_MAJOR_VERSION, 4): QT += джаджи

person Sublele    schedule 18.08.2016