gpt4 book ai didi

go - 如何使用 go 1.5+ 创建静态链接的 golang 可执行文件

转载 作者:IT王子 更新时间:2023-10-29 01:07:23 26 4
gpt4 key购买 nike

golang 版本 < 1.5 - 有大量静态链接示例、帖子和秘诀。 >= 1.5 呢? (谷歌搜索没有为我的搜索词返回有用的结果。)有人对如何生成可以在基本 rkt(来自 CoreOS)容器内执行的静态链接二进制文件有任何建议吗?

我Go:

$go version
go version go1.5 linux/amd64

当我尝试运行我的容器时:

sudo rkt --insecure-skip-verify run /tmp/FastBonusReport.aci

我得到:

[38049.477658] FastBonusReport[4]: Error: Unable to open "/lib64/ld-linux-x86-64.so.2": No such file or directory

表明容器中的可执行文件依赖于此库,因此不是静态的。

我的 list 看起来像:

cat <<EOF > /tmp/${myapp}/manifest
{
"acKind": "ImageManifest",
"acVersion": "0.9.0",
"name": "${lowermyapp}",
"labels": [
{"name": "os", "value": "linux"},
{"name": "arch", "value": "amd64"}
],
"app": {
"exec": [
"/bin/${myapp}"
],
"user": "0",
"group": "0"
}
}
EOF

我构建二进制文件的命令行如下所示:

go build ${myapp}.go

article有几个例子 golang < 1.5。然后就是这个 getting started CoreOS 网站上的文章。

最佳答案

我讨厌回答我自己的问题。评论是正确的 CGO_ENABLED=0 go build ./... 似乎已经成功了。

虽然这不是原始问题的一部分,但一旦程序开始在 rkt 容器中执行,它就无法执行正确的 DNS 请求。所以一定还有其他事情在发生。

关于go - 如何使用 go 1.5+ 创建静态链接的 golang 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33113190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com