猿问
如何将文件嵌入到 Go 二进制文件中
我有一些从 Go 程序中读取的文本文件。我想发布一个可执行文件,而无需额外提供该文本文件。如何将其嵌入到 Windows 和 Linux 上的编译中?
30秒到达战场
浏览 255
回答 3
3回答
慕虎7371278
使用go-bindata。从自述文件:该工具将任何文件转换为可管理的 Go 源代码。用于将二进制数据嵌入到 go 程序中。文件数据在转换为原始字节切片之前可以选择 gzip 压缩。
0
0
0
偶然的你
正在寻找相同的东西并遇到esc: Embedding Static Assets in Go(截至 2014 年 11 月 19 日),作者Matt Jibson正在评估其他 3 个声称可以进行文件嵌入的流行软件包:拉基尔/斯塔蒂克jteeuwen/go-bindata(以及新的官方go-bindata/go-bindata和另一个改进的kevinburke/go-bindata)GeertJohan/go.rice并解释为什么他最终想出了自己的包:米吉布森/esc因此,在简单地尝试了所有(按此顺序)之后,我自然而然地选择了 Matt 的esc,因为它是唯一一个开箱即用且具有我所需功能(单个可执行文件中的 HTTPS 服务)的工具,即:可以采用一些目录并以与http.FileSystem兼容的方式递归地将所有文件嵌入其中可以选择禁用与本地文件系统一起使用以进行本地开发,而无需更改客户端代码不会在后续运行中更改输出文件在文件更改时具有合理大小的差异能够通过//go:generate而不是强迫您手动编写额外的 Go 代码来完成工作第 2点对我来说很重要,而其他软件包由于某种原因或其他原因并没有那么好。来自 esc 的自述文件:esc 将文件嵌入到 go 程序中,并为它们提供 http.FileSystem 接口。它在指定路径的命名目录下递归添加所有命名文件或文件。输出文件提供了一个 http.FileSystem 接口,对标准库之外的包具有零依赖性。
0
0
0
随时随地看视频
慕课网APP
相关分类
Go
我要回答