为了账号安全,请及时绑定邮箱和手机立即绑定

从源代码构建 go 编译器时出错

从源代码构建 go 编译器时出错

Go
弑天下 2022-01-10 15:11:01
我正在尝试从源代码构建 Go 的最新版本(主分支的提示)。官方 Go 文档 ( https://golang.org/doc/install/source ) 声明您应该下载 Go 1.4 二进制文件以构建更新的版本。但是,应该可以从源代码构建所有内容。为此,我在.bashrc以下位置设置变量:PATH="$HOME/go/bin:$PATH"export GOPATH=$HOME然后从源代码构建 go 1.4:source ~/.bashrcgit clone https://go.googlesource.com/gomkdir ~/go1.4cd ~/gogit archive --format=tar go1.4.3 |tar -xv -C ~/go1.4cd ~/go1.4/src./make.bash最后构建最新版本:cd ~/go/src/GOROOT_BOOTSTRAP=$HOME/go1.4 ./make.bash我记得几个月前这样做没有问题,但今天我在构建 go 1.4 时遇到了这些错误make.bash:# cmd/pprof.../go1.4/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic?.../go1.4/pkg/linux_amd64/runtime/cgo.a(_all.o): unknown relocation type 42; compiled without -fpic?runtime/cgo(.text): unexpected relocation type 298runtime/cgo(.text): unexpected relocation type 298...我的方法有问题吗?
查看完整描述

1 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

错误消息指向 CGO,make.bash文件开头解释了控制的环境变量:


CGO_ENABLED:在构建期间控制 cgo 的使用。将其设置为 1 以在构建中包含所有与 cgo 相关的文件、.c 和带有“cgo”构建指令的 .go 文件。将其设置为 0 以忽略它们。


因此,如果您在构建 GO 1.4 时禁用 CGO:


cd ~/go1.4/src

CGO_ENABLED=0 ./make.bash

一切正常并通过测试。


查看完整回答
反对 回复 2022-01-10
  • 1 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信