【问题标题】:how to compress all the DLL files into the main exe file? [duplicate]如何将所有DLL文件压缩到主exe文件中? [复制]
【发布时间】:2022-08-16 06:07:12
【问题描述】:

我正在使用带有 C++ 的 SDL2 和 SDL2 映像,并且有很多 DLL\'s 是运行 main.exe 所必需的。我想在没有 dll 的单个 main.exe 文件中提交项目。这可能吗?

  • 听起来您想静态链接库而不是使用动态链接:wiki.libsdl.org/Installation#static_linking
  • 另请参阅this question 和许多其他喜欢它的人。
  • 当然,您可以编写一个程序,将 DLL\'s 转换为例如字节数组,然后将其嵌入到您的 Exe 中,它需要在第一次启动时将 em 写回文件系统......我用 Icons n 的东西做了这个,小得多。但原理是便携
  • @schnedan:不是真的。当 Windows 加载您的可执行文件时,它已经解析了 DLL。这发生在您的main 运行之前,因此您无法及时提取 DLL。稍后需要图标,因此它们确实有效。
  • @MSalters 可以通过动态/延迟加载 DLL 来避免。

标签: c++ sdl


【解决方案1】:

如果您要链接 dll,则不会。只能这样做,因为它们都是静态库,而不是动态库(dll)。

(如果使用 dll)可能最好尝试将它们放在一个文件夹中。根据您的目标,可以选择自动运行的自解压可执行文件。

编辑:如果您自己将 SDL 2.0 构建为静态库,显然您可以做到这一点 - 这表明它是可能的(对于 Windows)https://wiki.libsdl.org/Installation#static_linking

【讨论】:

  • “不”有点误导。 SDL2 确实提供了静态库,所以这是可能的。
  • 好的 - 谢谢,我会编辑。
猜你喜欢
  • 1970-01-01
  • 2020-03-02
  • 2014-10-23
  • 2012-05-25
  • 2021-01-05
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多