【问题标题】:Does go build include non go files in binary? [duplicate]go build 是否在二进制文件中包含非 go 文件? [复制]
【发布时间】:2019-06-15 07:09:44
【问题描述】:

go build 是否包含代码中使用的其他支持文件并与 exe 一起提供? 例如:

--> input.go - contains go code to read input from text file
--> inpdata.txt

当我们执行go build 时,inpdata.txt 文件是否也会发送?
如果排除了这些支持文件,它们如何获取从外部文件提供的输入值?

我正在尝试使用 Golang 构建一个二进制文件(exe 文件恰好用于 win-OS)。
在阅读了一些文档后可以清楚地理解为win-OS生成exe文件的go build命令忽略了_test.go文件和所有tesdata文件夹。
在文档中也提到了go build binary package,提到这仅适用于非源文件。

【问题讨论】:

  • 在您的示例中,inpdata.txt 不包含在输出二进制文件中。假设您的程序通过ioutil.ReadAll("./inpdata.txt") 读取inpdata.txt,当您的二进制文件运行时,您的程序实际上会查找<current working directory>/inputdata.txt"<current working directory> 通常是您运行程序的地方。所以你需要确保你的inputdata.txt 在你的二进制文件旁边。
  • @LiyangChen 有没有办法将 inpdata.txt 包含到二进制文件中?用例:假设我将这个二进制文件发送到某个地方,我如何确保 inpdata.txt 始终存在,而不将所有必需的资源文件显式传递给服务器?

标签: go


【解决方案1】:

go build 是否在二进制文件中包含非 go 文件?

默认情况下,否:您需要嵌入它们。

有几种方法:

【讨论】:

    猜你喜欢
    • 2019-07-13
    • 1970-01-01
    • 2020-07-04
    • 2013-01-08
    • 1970-01-01
    • 2014-08-20
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多