gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 02:23:13 24 4
gpt4 key购买 nike

我正在尝试从源代码构建 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
...

我的方法有问题吗?

最佳答案

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

CGO_ENABLED: Controls cgo usage during the build. Set it to 1 to include all cgo related files, .c and .go file with "cgo" build directive, in the build. Set it to 0 to ignore them.

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

cd ~/go1.4/src
CGO_ENABLED=0 ./make.bash

一切正常并通过测试。

关于linux - 从源代码构建 go 编译器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37192696/

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