我试图协调为什么当make.bash还支持对所有支持的架构by default进行交叉编译时,它却接受GOARCH、GOOS和其他目标变量。我正在为amd64/linux编译此程序,但将使用该编译器在嵌入式环境中交叉编译用于arm/linux的应用程序。Buildroot构建使用以下命令
cd /builddir/build/host-go-1.10.2/src &&
GOROOT_BOOTSTRAP=/builddir/host/lib/go-1.4.3
GOROOT_FINAL=/builddir/host/lib/go
GOROOT="/builddir/build/host-go-1.10.2"
GOBIN="/builddir/build/host-go-1.10.2/bin"
GOARCH=arm
GOARM=7
GOOS=linux
CC=/usr/bin/gcc
CXX=/usr/bin/g++
GO_ASSUME_CROSSCOMPILING=1
CC_FOR_TARGET="/builddir/host/bin/arm-linux-gnueabihf-gcc"
CXX_FOR_TARGET="/builddir/host/bin/arm-linux-gnueabihf-g++"
CGO_ENABLED=1
./make.bash
它可以正常工作,并继续构建其他应用程序。我的问题是,为什么这些目标变量在这个阶段是相关的?这不是只与使用该程序编译的应用程序相关吗?
发布于 2019-01-25 06:20:03
Go编译器和链接器都是Go程序。make.bash
需要知道为哪个架构和操作系统构建Go工具链。
有关不同体系结构和操作系统的示例,请参阅Downloads - The Go Programming Language。
https://stackoverflow.com/questions/54356055
复制相似问题