我知道以前曾经问过,但我似乎无法找到答案.
我只是有一个小问候世界控制台程序,基本上我用qt创建者在c中写道.当我尝试运行可执行文件时,我得到“程序无法启动,因为您的计算机缺少libgcc_s_dw2-1.dll.请尝试重新安装以解决此问题.”
我不明白为什么这个dll对于像这样的小程序来说甚至是必需的.我尝试在其他地方建议添加这些标志:
QMAKE_CXXFLAGS = -static -static-libgcc -static-libstdc
它仍然会发生.其他人建议将dll所在的目录添加到我的路径中,但是我想将这个程序实际交给其他人而不需要它们.
最佳答案 我知道这是一个老问题,你可能找到了一个适合你的解决方案,但是在用Qt 5.9.1 / MinGW32-5.3.0-构建一个静态链接(独立)应用程序一天后,我偶然发现了这个问题. 32位.
在构建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. 🙂