我下载了Qt4.8.2库、Qt 2.5.2,并手动安装了带有MingW版本3.13和GCC/g++版本4.7.0.1的w32api。我的操作系统是Windows7终极x64。
我可以在Qt中创建一个示例“纯C++项目”;使用g++编译并运行控制台应用程序,没有任何问题。
但我不能运行Qt应用程序。我使用了Qt,使用Creator的“”模板创建了一个虚拟Qt应用程序。可以成功编译项目,而不会出现任何错误或警告。但是,当我尝试运行它(包括Qt Creator和Windows Explorer)时,二进制文件一直在崩溃。调试和发布版本崩溃。它甚至在显示主窗口之前就崩溃了。
MingW安装在C:\MingW中,C:\MingW\bin安装在PATH中。Qt安装在C:\Qt\4.8.2中,C:\Qt\4.8.2\bin安装在PATH中。
我使用Dependency分析了Qt应用程序输出的生成的exe,发现它找到了所有必需的DLL:
那么,是什么导致运行时崩溃呢?
编辑
我还尝试了Qt的示例项目:2 d绘画和地址簿--它们在启动时都崩溃了。
发布于 2012-09-12 08:13:51
应该使用用于构建应用程序的MinGW编译器来构建Qt。GCC对二进制兼容性问题的敏感性一般不如MSVC,但Qt是一个庞大而复杂的框架库。如果有什么可以暴露这些问题的话,Qt很可能会出现在候选名单上。
构建Qt非常简单,但是它需要花费大量的时间,而且似乎总是需要两到三个补丁才能成功构建。
上次我用MinGW构建Qt (4.7.3)时,我不得不做以下补丁--我不确定它们是否仍然适用于QT4.8:
float.h中存在一个问题--我有时不得不添加行:
#include_next 
到了MinGW特定的float.h结束时,一般GCC的float.h就会得到正确的处理。我不得不为nuwen 4.7.0 lib/gcc/i686-pc-mingw32/4.7.0/include/float.h和TDM 4.6.1 32位发行版lib/gcc/mingw32/4.6.1/include/float.h ( TDM的64位发行版不需要此修补程序)这样做。qmake\Makefile.win32-g++和qmake\Makefile.win32-g++-sh以删除GCC不识别的-static-libstdc++选项(而不是忽略)mkspecs/win32-g++/qmake.conf以将QMAKE_LFLAGS_EXCEPTIONS_ON宏中的-Wl,移动到QMAKE_FLAGS中的适当位置:
QMAKE_LFLAGS = -Wl,-enable-stdcall,-enable-auto,-enable-runtime-伪reloc QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreadsmake.exe复制到MinGW的bin目录中的mingw32-make.exe (如果还没有mingw32-make.exe )然后构建Qt包括:
  set QTDIR=<location of Qt source directory>  # where configure.exe is
  set PATH=%QTDIR%\bin;c:\MinGW\bin;%PATH%
  set INCLUDE=
  set LIB=
  cd %QTDIR%
  mingw32-make confclean    # (this should fail the first time, since there's nothing to clean)
  configure.exe -opensource -debug-and-release -nomake examples -nomake demos -nomake tests -platform win32-g++  # and accept the GPL license
  mingw32-make这需要一段时间。希望没有其他东西需要修补。
发布于 2013-02-11 13:37:46
我也有这个问题。我是一个Qt n00b,在安装Qt库时,我说:“我已经安装了明威,所以我跳过安装Qt附带的明名。”这给了我很多麻烦。当安装Qt附带的mingw时,一切正常。
因此,我对任何在谷歌上搜索这个问题的人(就像我一样)的建议是,不要使用你已经安装好的明威,安装一个带有Qt的,并使用它(否则,你必须在你的鸣声中构建Qt库,就像迈克尔·伯尔的答案一样)。
https://stackoverflow.com/questions/12381205
复制相似问题