Bootstrap

mingw静态链接(libgcc_s_seh-1,libstdc++-6和 libwinpthread-1)

1 概述

  在Windows用mingw编译的C/C++程序默认会依赖这三个动态库:

  • libgcc_s_seh-1.dll: 该库是 GCC 提供的一个运行时库,用于处理 C 和 C++ 程序中的一些基本运算。SEH 代表结构化异常处理,这是 Windows 系统上的一种异常处理机制。
  • libstdc+±6.dll: 该库是 GCC 提供的 C++ 标准库的动态链接库文件,它包含了 C++ 程序运行时需要的标准库实现。在 Windows 平台上,许多使用 C++ 编写的应用程序都依赖这个 DLL 文件。
  • libwinpthread-1.dll: 该库是 GnuWin 工具集中的一个 DLL 文件,它提供了 POSIX 线程库(pthreads)的 Windows 实现。

其实可以选择链接对应版本的静态库.

2 静态链接libgcc_s_seh-1.dll

链接时增加链接选项 -static-libgcc,如下所示:

gcc -o myprogram myprogram.c -static-libgcc

3 静态链接libstdc+±6

链接时增加链接选项 -static-libstdc++,如下所示:

g++ -o myprogram main.cpp -static-libstdc++

4 静态链接libwinpthread-1.dll

暂时没法发现静态链接libwinpthread-1.dll的专用链接选项,不过可以通过链接选项 -static来实现。不过链接选项-static相当于将libstdc+±6和libgcc_s_seh-1也静态链接了。

g++ -o myprogram main.cpp -static
;