英文:
How to run a Go file on client machine?
问题
我有一个Go文件,我想把它给客户使用。客户应该能够在终端中使用一个命令来执行它。他们不需要在他们的系统中安装Go语言。
如何在客户机上运行这个二进制文件?请帮助我。
英文:
I have a Go file and I would like to give it to the customers. The customers should be able to execute using a command in terminal. They will not install Go lang in their system.
How to do run this binary file in clients machine? Please help me.
答案1
得分: 4
Go是一种编译语言。你可以使用Go工具将你的Go应用程序编译成可执行二进制文件。一旦你有了可执行二进制文件,你可以直接运行它,不再需要或使用Go安装。由于Go是静态链接的,所有的依赖项都将被编译/链接到可执行文件中。
具体来说:
- 使用
go install
编译你的应用程序,并将可执行二进制文件“安装”到$GOPATH/bin
文件夹中 - 或者使用
go build
编译你的应用程序,并在当前工作目录中获取可执行二进制文件
阅读https://stackoverflow.com/questions/30612611/what-does-go-build-build了解更多细节。
你只需要将可执行二进制文件传递给你的客户。如果你的应用程序使用静态文件,当然你也需要传递它们,最好打包成一个压缩文件。
请注意,可执行二进制文件针对特定的平台。你需要与你的客户商讨他打算在哪个平台上运行你的应用程序,并将应用程序编译为该特定平台。
目标操作系统和平台可以使用GOOS
和GOARCH
环境变量进行设置。例如,如果你的客户想在Windows amd64上运行你的应用程序,你可以这样生成一个Windows amd64可执行文件:
GOOS=windows GOARCH=amd64 go build
有关有效的GOOS
和GOARCH
值的列表,请参阅https://stackoverflow.com/questions/37302211/how-can-i-build-for-linux-32-bit-with-go1-6-2/37302937#37302937。
英文:
Go is a compiled language. You can use the Go tools to compile your Go app to an executable binary. Once you have the executable binary, you can run it as-is, the Go installation is not needed / used anymore. Since Go is statically linked, all the dependencies will be compiled / linked into the executable.
More specifically:
- use
go install
to compile your app and "install" the executable binary to your$GOPATH/bin
folder - or use
go build
to compile your app and get the executable binary in the current working directory
Read https://stackoverflow.com/questions/30612611/what-does-go-build-build for more details.
All you need is to pass on the executable binary to your customer. If your app uses static files, of course you have to pass them too, preferably packed into one compressed file.
Note that an executable binary targets a specific platform. You have to consult your customer about what platform he intends to run your app on, and compile your app to that specific platform.
The target OS and platform can be set using the GOOS
and GOARCH
environment variables. For example, if your customer wants to run your app on Windows amd64, you can produce a Windows amd64 executable like this:
GOOS=windows GOARCH=amd64 go build
For a list of valid GOOS
and GOARCH
values, see https://stackoverflow.com/questions/37302211/how-can-i-build-for-linux-32-bit-with-go1-6-2/37302937#37302937.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论