在构建Cppcheck GUI时,我遇到了一些错误的Qt,错误的MinGW,错误的QtCore4.dll路径,但最终将它变成了一个可执行文件,它在运行时崩溃了。
有问题的点的反汇编看起来像这样:
mov eax,12Fh
xor ecx,ecx
lea edx,[esp+4]
call dword ptr fs:[0C0h]
add esp,4
ret 0Ch
似乎崩溃试图调用静态链接的东西。还有一件事对我来说很奇怪:在我从下载的.msi安装的版本中,可执行文件大约是30 Mb而不是500 Kb。它只是必须构建错误。
我使用来自Github,Qt 4.8.5(mingw版本)的最新资源,尽管我从Qt 5.1.1获取了MinGW本身。如果重要的话,整个过程都在Windows中进行。我只是运行“build.bat all debug” - 就是这样。那么,这次我做错了什么?
答案 0 :(得分:1)
官方Qt 4.8.5是使用GCC 4.4构建的。 downloads page将其列为“用于Windows的Qt库4.8.5( minGW 4.4 ,317 MB)”。但是,Qt 5.1.1提供的MinGW包含GCC 4.8,它与使用GCC 4.4构建的库不兼容。 GCC版本不匹配的症状是奇怪的崩溃,就像你所看到的那样。
您的选择(从最简单到最难)是: