Linker 链接时如何将DLL合并到MinGW中的EXE

Linker 链接时如何将DLL合并到MinGW中的EXE,linker,mingw-w64,msys2,gnat,ghdl,Linker,Mingw W64,Msys2,Gnat,Ghdl,我在我的机器上编译时,使用的是: 这是一个独立的Ada编译器,用于生成单个可执行文件 或与 (GCC+GNAT+CLANG,CLANG++,…) 这是用于Windows的GCC编译器工具链。它生成一个可执行文件,该文件需要安装目录中MinGW的少量dll 是否可以添加链接器标志以将DLL集成到可执行文件中以减少已发送文件的数量 需要设置哪些标志才能将所需的依赖项合并到可执行文件中 在本文中,我列出了GHDL与LLVM后端的所有DLL依赖项: libgcc_s_seh-1.dll lib

我在我的机器上编译时,使用的是:


  • 这是一个独立的Ada编译器,用于生成单个可执行文件
    或与
  • (GCC+GNAT+CLANG,CLANG++,…)
    这是用于Windows的GCC编译器工具链。它生成一个可执行文件,该文件需要安装目录中MinGW的少量dll
是否可以添加链接器标志以将DLL集成到可执行文件中以减少已发送文件的数量

需要设置哪些标志才能将所需的依赖项合并到可执行文件中


在本文中,我列出了GHDL与LLVM后端的所有DLL依赖项:

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

如果MSYS2开发人员构建了这些库的静态版本,则在
/mingw32/lib
/mingw64/lib
目录中可能有用于这些内容的静态库。您可以尝试在链接步骤中将
-static
选项传递给GCC,我认为如果静态版本可用,它将尝试使用静态版本。我不知道有什么方法可以将DLL合并到一个可执行文件中,您必须针对静态库进行链接