我正在Go中编写一个应用程序。但是,在每个平台上,我的代码都将使用从另一个项目编译的外部程序(例如Windows中的C ++,Mac中的Objective-C等)。使用os/exec
exec.Command
函数调用此外部可执行文件。
我可以毫无问题地打包我的软件,但是仍有一个问题是使用go run
会导致此文件丢失。
有没有办法告诉go
每当我$ go run myproj
时它应该包含外部文件(最好也是从源代码构建它)?
AFAIK,go run
只是在tmp目录下构建二进制文件,但是它不会包含任何外部文件,例如图像等。例如,当您有两个文件时:$GOPATH/src/main/main.go
和{ {1}}和$GOPATH/ext-tool.bin
内容为:
main.go
答案 0 :(得分:2)
另一种方法是在应用程序构建中嵌入可执行文件。
这是通过go-bindata
或其最近的继任者unnoted/fileb0x
完成的
在那里,您可以访问内存文件系统中的嵌入式可执行文件。