我正在学习更多关于 Golang 二进制分布模型的知识,并且想知道将依赖的预编译二进制文件与 Go 应用程序捆绑在一起的最佳实践是什么。
假设我正在 Windows 上构建我的 Golang 应用程序,并且有一些用于与共享操作系统组件交互的 DLL。 Go 的价值主张之一是它创建了一个二进制文件(例如,
hugo.exe
用于 Hugo 静态站点生成器),它具有所有内置的依赖项(因为它们是从源代码编译的)。
当依赖的源代码不能共享时会发生什么?在 tar/zip 中捆绑 DLL 是可行的方法还是有更好的方法?
这也提出了跨平台兼容性的问题,因为 Go 程序可能在非 Windows 平台上运行,这意味着我的二进制文件也需要为这些平台预编译。
虽然理论上这是可行的 - 这是 Go 社区期望的反模式吗?