Debian

如何為 9.3-win32 MinGW 執行檔靜態連結缺少的 libgcc_s_seh-1.dll 和 libstdc++-6.dll DLL

  • February 8, 2021

我想使用 MinGW 在 Linux 上編譯一個簡單的 Windows 應用程序。

我編譯如下:

x86_64-w64-mingw32-g++ -L. -l:mathlib.dll -o fib main.cpp mathlib.h

這將生成一個執行檔,該執行檔fib使用從mathlib.dll.

現在,fib在 Windows 上執行時,它會抱怨libgcc_s_seh-1.dll並且libstdc++-6.dll失去了。

如果我將這些 DLL 複製到 Windows,那麼一切正常,但我不想將這些 MinGW 依賴項與每個執行檔一起複製。

如何靜態連結這些 MinGW 依賴項,這樣不foo依賴於其他 DLL mathlib.dll

使用and選項建構您的程序(以及mathlib.dll,如果需要) :-static-libgcc``-static-libstdc++

x86_64-w64-mingw32-g++ -static-libgcc -static-libstdc++ -L. -l:mathlib.dll -o fib main.cpp mathlib.h

libgcc這將生成一個對and沒有外部依賴的二進製文件libstdc++

引用自:https://unix.stackexchange.com/questions/633316