我有一些从 Go 程序中读取的文本文件。我想发布一个可执行文件,而无需额外提供该文本文件。如何将其嵌入到 Windows 和 Linux 上的编译中?
3 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
偶然的你
TA贡献1841条经验 获得超3个赞
正在寻找相同的东西并遇到esc: Embedding Static Assets in Go(截至 2014 年 11 月 19 日),作者Matt Jibson正在评估其他 3 个声称可以进行文件嵌入的流行软件包:
并解释为什么他最终想出了自己的包:
因此,在简单地尝试了所有(按此顺序)之后,我自然而然地选择了 Matt 的esc,因为它是唯一一个开箱即用且具有我所需功能(单个可执行文件中的 HTTPS 服务)的工具,即:
可以采用一些目录并以与http.FileSystem兼容的方式递归地将所有文件嵌入其中
可以选择禁用与本地文件系统一起使用以进行本地开发,而无需更改客户端代码
不会在后续运行中更改输出文件在文件更改时具有合理大小的差异
能够通过
//go:generate
而不是强迫您手动编写额外的 Go 代码来完成工作
第 2点对我来说很重要,而其他软件包由于某种原因或其他原因并没有那么好。
来自 esc 的自述文件:
esc 将文件嵌入到 go 程序中,并为它们提供 http.FileSystem 接口。
它在指定路径的命名目录下递归添加所有命名文件或文件。输出文件提供了一个 http.FileSystem 接口,对标准库之外的包具有零依赖性。
- 3 回答
- 0 关注
- 254 浏览
添加回答
举报
0/150
提交
取消