【发布时间】:2016-01-13 06:09:17
【问题描述】:
我知道以前有人问过这个问题,但我似乎找不到答案。
我只有一个小小的 hello world 控制台程序,基本上是我用 qt creator 用 c++ 编写的。当我尝试运行可执行文件时,我得到“程序无法启动,因为您的计算机中缺少 libgcc_s_dw2-1.dll。请尝试重新安装以解决此问题。”
我不明白为什么像这样的小程序甚至需要这个 dll。我尝试按照其他地方的建议添加这些标志:
QMAKE_CXXFLAGS += -static -static-libgcc -static-libstdc++
它仍然会发生。其他人建议将 dll 所在的目录添加到我的路径中,但我想在不需要 dll 的情况下将这个程序实际提供给其他人。
【问题讨论】:
-
-static应该足够了,如果它仍然依赖于libgcc dll然后使用依赖walker查看问题出在哪里,链接时找不到静态libgcc lib所以链接器是依赖 dll,或者其他一些组件依赖于它(需要使用静态库重新编译)。 -
qmake 默认链接 libgcc,无论你的应用程序有多大,因为这个 lib 包含 C++ 运行时。