簡體   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