让我们假设运行go install -v importpath会生成一个可执行文件并将其安装到中$GOPATH/bin/program。该go工具无法安装资源文件。当我运行时program,我希望它访问.NET下的一些资源文件$GOPATH/src/importpath。
go install -v importpath
$GOPATH/bin/program
go
program
$GOPATH/src/importpath
从已安装的可执行文件访问此类资源文件的最佳方法是什么?
这个问题已经被问多 时间细末坚果邮件列表上。该go工具目前不提供直接的方式来分配其他资源。但是,有两种解决方法:
编写一个简单的脚本(awk就足够了)以将任何文件转换为.go仅包含单个字符串常量的文件,并将该文件直接嵌入二进制文件中。例如,Camlistore项目使用这种方法(camlistored / ui / fileembed.go)。go-bindata做类似的事情。
.go
go-tour和许多其他项目当前正在使用软件包的导入功能go/build来搜索其中src/列出的所有文件夹,$GOPATH并$GOROOT找到软件包源的正确路径。范例:http : //code.google.com/p/go-tour/source/browse/gotour/local.go?r=996704f8ef9e63949b3bc4d94b613ec4a7b5d99a#53
go/build
src/
$GOPATH
$GOROOT