我有一个Windows 7 64位系统,最新的MinGW(32位)与Qt 5.5 SDK(也是32位)一起安装,它也附带了它自己的MinGW。由于我不是唯一使用该系统的人,所以我无法删除独立的MinGW。缺少libgcc_s_dw2-1.dll
我的项目使用qmake
,并且是一个纯C项目(不是C++)。一切都很好,但是当我尝试在命令行中执行我的二进制文件时,由于系统上缺少libgcc_s_dw2-1.dll
,导致应用程序无法启动。
在调查了这个问题之后,我发现独立的MinGW和Qt SDK一起提供了一个提到的DLL。
- 独立的MinGW -
libgcc_s_dw2-1.dll
位于bin
子目录MinGW的安装,其中二进制文件所在(gcc
,g++
,gdb
等) - 的Qt MinGW的内部 -
libgcc_s_dw2-1.dll
位于内部C:\Qt\Tools\mingw492_32\i686-w64-mingw32\lib
子目录而MinGW组件的二进制文件在C:\Qt\Tools\mingw492_32\i686-w64-mingw32\bin
之内。
我想知道如何正确设置我的PATH
变量,以便:
- 应用程序正常启动
- 没有使用独立的MinGW安装发生冲突
只是一个旁注:我已经在SO上查看了其他帖子,但无法找到解决方案(也许我错过了它)。我也试过LIBS += -static
,但结果是一样的。
与libgcc和libstdC++静态链接不是这里的方式:无论如何Qt链接到DLL,所以你仍然有依赖,并且最重要的是,你现在必须编译运行时和C++标准库在您的应用程序,与他们可能的全球状态混淆。 – rubenvb
另请注意,MSYS2环境带有一个Windows'ldd',它非常方便。 – rubenvb
@rubenvb - 是的,我已经离开了后期的静态链接...关于Windows上的LDD(酷)你有链接吗? (它在哪里) - 我发现linux工具好得多... –