我有一个Windows764bit系统,安装了最新的MinGW (32位)以及QT5.5SDK(同样是32位),它还附带了自己的MinGW。由于我不是唯一一个使用该系统的人,所以我无法删除独立的MinGW。
我的项目使用qmake,是一个普通的C项目(而不是C++)。一切都很好,但是当我试图在命令行中执行我的二进制文件时,我发现由于系统上缺少libgcc_s_dw2-1.dll,应用程序无法启动。
在研究了这个问题之后,我发现独立的MinGW和Qt附带的都有提到的DLL。
libgcc_s_dw2-1.dll位于二进制文件所在的MinGW安装的bin子目录中(gcc、g++、gdb等)。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变量以便:
顺便提一句:我已经查过这里的其他帖子了,但没能找到解决方案(也许我错过了)。我也尝试过LIBS += -static,但结果是一样的。
发布于 2016-07-06 07:34:40
您只需使用可执行文件复制此dll,即:
cp <path-to-qt-install-dir>\qt5.7.0\5.7\mingw53_32\bin\libgcc_s_dw2-1.dll <path-to-dest-dir>
您会发现您还有其他依赖项,以查看您可以使用的其他deps:ldd <your-executable>。您只需要复制qt特定的dll,您就可以通过以下方法看到这些内容:
ldd <executable> | grep -i qt
注意事项
您可以静态地将其链接到:链接器命令(如-static-libgcc或-static ),但我认为您开始遇到LGPL问题,并且可能需要从源代码静态编译qt --无法回忆起这个特定文件。
note2
很抱歉,ldd是用于linux的,您刚刚意识到您有windows,在这种情况下,您可以使用其中之一或两者:
<path-to-qt-bin-folder>\windeployqt.exe <path-to-your-executable>我有混合的结果,但如果你有任何插件,它的安静很好,使该部分排序。
https://stackoverflow.com/questions/38199826
复制相似问题