4

自从我使用 QT 5.0.1(来自http://qt-project.org/downloads)和模块 qtsingleapplication(来自http://qt.gitorious.org/qt-solutions的最新版本)后,我无法在 Windows 上编译)。

在 Linux 下,编译仍然有效(Qt 4.8.2)

我不明白为什么。这是 qtcreator 的详细输出。

09:57:58: Execution des étapes pour le projet Wahoo...
09:57:58: Configuration inchangée, étape QMake sautée。
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/构建-发布/发布'

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++"

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_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:目标'release'的配方失败
mingw32-make:** [ release] Error 2
09:57:59: Le processus "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)Lors de l'exécution de l'étape “Make”

每个文件都存在,选项 -I"D:\Qt\Qt5.0.1\5.0.1\mingw47_32\include\QtWidgets" 也是。如果我从源代码浏览,QtCreator 可以找到该文件。所以我有点失落......

先感谢您

4

4 回答 4

13

...QApplication:没有这样的文件或目录...

尝试添加

QT += widgets

在您的 .pro 文件中。我也有同样的消息...从 5.0 开始,基于 Qt 的应用程序默认不喜欢小部件...每个人都迁移到 QML 吗?

PS:现在,作为这个任务的下一点 - 我找不到 QPrinter )

于 2013-03-25T11:33:19.780 回答
0

我也遇到了这个问题。

一旦我添加

QT += widgets

就像 Denjs 建议的那样,我还需要添加:

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

这是 QtSingleApplication 源文件的位置。

于 2014-02-13T21:13:49.390 回答
0

它表明您在 IDE 中错误地配置了库搜索路径。未找到 QT SDK 库。您是否使用 QT 工具和/或安装手册安装了所有内容?

“QApplication”是头文件之一,包含在#include <qapplication>. 根据您安装 SDK 的方式和安装方式,它可能驻留在例如:

带有 Carbide/Eclipse 的诺基亚 SDK:

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.cppqtsingleapplication.o,而第二个试图链接qtsingleapplication.cpp-o QtSingleApplication

我觉得:

  • 第二行忘记了参数“-c”和所有-I路径
  • 或第二行有无效的输入文件,应该有qtsingleapplication.o而不是.cpp

我想你的 qtprojs 中确实有一些开关/条件搞砸了:win32 案例。对不起,我不能告诉你更多,在这一点上,我必须尝试自己编译项目并调查生成文件/qtprojs。尝试回溯第二行是如何生成的以及使用了哪些 makefile/qtproj 变量,然后对项目设置进行双重甚至三重检查。不要在 IDE 中执行此操作,而是在使用的实际项目文件中执行此操作。IDE 有时会向您隐藏一些条件和设置,尤其是 QT Creator 喜欢这样做。

于 2013-03-08T09:42:49.687 回答
0

我是 Qt 的新手。当我尝试第一个程序时,在 qmake -project qmake hello.pro

'make'后出现错误:'QApplication'file not found

但使用相同的代码,它可以在 Qt Creator 上成功调试。当我想释放它时发生了同样的错误。

解决方案是修改 .pro 文件。添加以下两行:

QT += 核心 gui

大于(QT_MAJOR_VERSION,4):QT += 小部件

于 2016-08-18T06:01:36.580 回答