'go'工具安装可执行文件后如何访问资源文件?

时间:2012-02-25 11:03:06

标签: go

让我们假设运行go install -v importpath构建可执行文件并将其安装到$GOPATH/bin/program中。 go工具无法安装资源文件。当我运行program时,我希望它能够访问$GOPATH/src/importpath下的一些资源文件。

从已安装的可执行文件中访问此类资源文件的最佳方法是什么?

3 个答案:

答案 0 :(得分:7)

这个问题在go-nuts邮件列表中被问到multiple timesgo工具目前不提供直接分发其他资源的方法。但是,有两种解决方法可供使用:

答案 1 :(得分:1)

go install并不是为了做你想做的事。

如果您坚持使用go install,则可以将资源嵌入可执行文件中(源代码中的字节数组)。

另一种选择是使用运行go install的部署脚本,然后将资源复制到可执行文件已知的位置。

如果您希望您的程序可由您以外的人安装,则应使用您所针对的操作系统标准的打包系统(例如Linux上的apt / rpm,Windows上的安装程序可执行文件,.dmg文件在Mac等。)

答案 2 :(得分:0)

GOPATH environment variable

  

在Unix上,该值是以冒号分隔的字符串。在Windows上,值   是一个以分号分隔的字符串。在计划9中,值是一个列表。

因此,$GOPATH/bin/program$GOPATH/src/importpath不一定有效。例如,在Linux上,

$ GOPATH=$HOME/gopath:$HOME/go
$ cd $GOPATH/bin/go
bash: cd: /home/peter/gopath:/home/peter/go/bin/go: No such file or directory