登录
首页 >  Golang >  Go问答

使用GOARCH和GOOS来配置go工具链的编译方式

来源:stackoverflow

时间:2024-02-27 17:15:27 156浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《使用GOARCH和GOOS来配置go工具链的编译方式》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

我试图解释为什么 make.bash 接受 goarch、goos 和其他目标变量,同时它默认也支持交叉编译到所有支持的体系结构。我正在为 amd64/linux 编译它,但将使用编译器在嵌入式上下文中交叉编译 arm/linux 的应用程序。 buildroot 使用以下命令构建 go

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

它可以正常工作并继续构建其他应用程序。我的问题是为什么这些目标变量在现阶段相关?这不是只与使用该程序编译的应用程序相关吗?


解决方案


Go编译器和链接器都是Go程序。 make.bash 需要知道要为哪种架构和哪种操作系统构建 Go 工具链。

有关不同架构和操作系统的示例,请参阅 Downloads - The Go Programming Language

参见 Installing Go from source

好了,本文到此结束,带大家了解了《使用GOARCH和GOOS来配置go工具链的编译方式》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>