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

我正在尝试从源代码构建 Go 的最新版本(主分支的提示)。


官方 Go 文档 ( https://golang.org/doc/install/source ) 声明您应该下载 Go 1.4 二进制文件以构建更新的版本。但是,应该可以从源代码构建所有内容。


为此,我在.bashrc以下位置设置变量:


PATH="$HOME/go/bin:$PATH"

export GOPATH=$HOME

然后从源代码构建 go 1.4:


source ~/.bashrc

git clone https://go.googlesource.com/go

mkdir ~/go1.4

cd ~/go

git archive --format=tar go1.4.3 |tar -xv -C ~/go1.4

cd ~/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 298

runtime/cgo(.text): unexpected relocation type 298

...

我的方法有问题吗?


弑天下
浏览 191回答 1
1回答

温温酱

错误消息指向 CGO,make.bash文件开头解释了控制的环境变量:CGO_ENABLED:在构建期间控制 cgo 的使用。将其设置为 1 以在构建中包含所有与 cgo 相关的文件、.c 和带有“cgo”构建指令的 .go 文件。将其设置为 0 以忽略它们。因此,如果您在构建 GO 1.4 时禁用 CGO:cd ~/go1.4/srcCGO_ENABLED=0 ./make.bash一切正常并通过测试。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go