3 回答
TA贡献1770条经验 获得超3个赞
它说您需要做的是为 linux-amd64 重建库和运行时。你可以这样做:
找到你的 Go 安装的根目录(如果你不知道它在哪里,运行
which go
可能会有所帮助 - 二进制文件通常与其他源代码一起安装)。cd
进入src
目录运行
GOOS=linux GOARCH=amd64 ./make.bash --no-clean
(或者GOOS=linux GOARCH=amd64 bash make.bash --no-clean
如果make.bash
不可执行)。这将使用指定的操作系统和架构重建库和运行时。
完成此操作后,您可以使用GOOS=linux GOARCH=amd64 go build
. 对于其他体系结构和操作系统,您可以遵循相同的说明。
编辑 (08/13/15):
从 Go 1.5 开始,交叉编译要容易得多。由于运行时是用 Go 编写的,因此无需进行任何设置即可交叉编译。您现在可以GOOS=<os> GOARCH=<arch> go build
从 vanilla Go 安装运行,它会起作用。
但是,有一个例外。如果您使用的是 cgo,您仍然需要提前设置。并且您需要通过将CGO_ENABLED
环境变量设置为1
. 所以,准确地说:
cd
进入src
你的 Go 安装目录(参见上面的说明)。跑
CGO_ENABLED=1 GOOS=<os> GOARCH=<arch> ./make.bash --no-clean
运行
CGO_ENABLED=1 go build
以构建您的项目。CGO_ENABLED=1
即使在编译时指定也很重要。
- 3 回答
- 0 关注
- 177 浏览
添加回答
举报