繁体   English   中英

在 cygwin 中使用 mingw 编译器编译 C++ 程序时缺少 dll

[英]Missing dll's when compiling c++ programs using mingw compiler in cygwin

当我使用 mingw 编译器在 cygwin 中编译我的 c++ 程序时,生成的可执行文件无法运行,因为它们缺少以下 dll:

  • libstdc++-6.dll
  • libgcc_s_seh-1.dll
  • libwinpthread-1.dll

一个编译命令的例子:

$ x86_64-w64-mingw32-g++ -Wall deque.cc -o deque

我也尝试添加以下链接器选项:

-static -static-libgcc -static-libstdc++

但他们似乎也没有帮助。

我查看了我的 dll:

C:\cygwin\lib\gcc\x86_64-w64-mingw32\5.4.0

但是在那里找不到dll。 我的电脑上可能没有这些dll吗? 如果是这样,我从哪里得到它们?

我知道在 stackoverflow 上还有其他类似的问题,但是通过这些问题我找不到任何关于这个问题变体的可靠答案。

使用https://cygwin.com/packages/搜索cygwin软件包的内容。

https://cygwin.com/cgi-bin2/package-cat.cgi?file=x86_64%2Fmingw64-x86_64-gcc-g%2B%2B%2Fmingw64-x86_64-gcc-g%2B%2B-5.4报告.0-3&的grep =的libstdc%2B%2B-6.dll

USR / x86_64的-W64-的mingw32 / SYS-根/的mingw / bin中/的libstdc ++ - 6.dll
一样
USR / x86_64的-W64-的mingw32 / SYS-根/的mingw / bin中/ libgcc_s_seh-1.DLL
USR / x86_64的-W64-的mingw32 / SYS-根/的mingw / bin中/ libwinpthread-1.DLL

我在编译时遇到了同样的问题。

我决定重新安装 cygwin,我按照以下说明重新安装 cygwin: https : //gist.github.com/patrickmoffitt/30684ec23fe82eabe0e3609cab2425b2 (在第 6 点中)使用包管理器,选择要安装的包.... 但就我而言,我还需要安装:

make
gdb

https://www.jetbrains.com/help/clion/quick-tutorial-on-configuring-clion-on-windows.html#Cygwin

此时,当完成我的新安装时,我在环境变量中添加了此路由:C:\\cygwin64\\usr\\x86_64-w64-mingw32\\sys-root\\mingw\\bin(此路由是 .dll 所在的位置)

这对我有用,希望这会有所帮助。

另一种解决方案是,复制所有必需的 .dll(形成我提到的路径)并将它们粘贴到 .exe 所在的位置。 每次都这样做有点烦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM