QT程序无法启动,因为缺少libgcc_s_dw2-1.dll

时间:2015-10-14 23:35:08

标签: c++ qt dll

我知道以前曾经问过,但我似乎无法找到答案。

我只是有一个小问候世界控制台程序,基本上我用qt创建者用c ++编写。当我尝试运行可执行文件时,我得到"程序无法启动,因为您的计算机缺少libgcc_s_dw2-1.dll。尝试重新安装以解决此问题。"

我不明白为什么这个dll对于像这样的小程序来说甚至是必需的。我尝试在其他地方添加这些标志:

QMAKE_CXXFLAGS + = -static -static-libgcc -static-libstdc ++

它仍然会发生。其他人建议将dll所在的目录添加到我的路径中,但是我想在没有他们需要dll的情况下将该程序实际提供给其他人。

2 个答案:

答案 0 :(得分:1)

我知道这是一个老问题,你可能找到了一个适合你的解决方案,但是在用Qt 5.9.1 / MinGW32-5.3尝试构建静态链接(独立)应用程序一天后,我偶然发现了这个问题。 .0-32bit。

在构建Qt的静态版本之后,最终这些动态链接的库被MinGW / GCC拉进来仍然阻碍了我:

libgcc_s_dw2-1.dll
libwinpthread-1.dll
libstdc++-6.dll
libwinpthread-1.dll

尝试了无数组合之后:

QMAKE_CXXFLAGS += [-static-libgcc | -static-libstdc++ | -static -lstdc++ -lpthread] 

和其他编译器参数在类似于这个的线程中找到,最终对我有用的是:

QMAKE_LFLAGS += -static

QMAKE_LFLAGS而不是QMAKE_CXXFLAGS,现在我的程序只依赖于一堆Windows DLL。 :)

答案 1 :(得分:0)

您需要在QT编辑器中进行以下设置 转到项目标签(位于左侧)以编辑项目的设置。

运行设置部分中, 在工作目录下,单击在终端中运行复选框。