go交叉编译 - CSDN
精华内容
参与话题
  • Go 交叉编译

    千次阅读 2017-03-22 22:39:45
    Go交叉编译Go在1.5版本中改进了对交叉编译的支持,包括统一了编译器、链接器等。使得跨平台交叉编译相当简单,一条命令即能轻松搞定。

    Go交叉编译

    Go在1.5版本中改进了对交叉编译的支持,包括统一了编译器、链接器等。从版本1.5开始,对你开发的应用程序进行夸平台交叉编译就变得相当简单了。只需要设置两个环境变量就可以搞定,分别是GOOSGOARCH

    环境变量

    • GOOS是你的应用程序将要运行平台的操作系统
    • GOARCH是你的应用程序将要运行平台的处理器架构。

    有效的$GOOS$GOARCH组合如下:

        $GOOS		$GOARCH
        android     arm
        darwin      386
        darwin      amd64
        darwin      arm
        darwin      arm64
        dragonfly   amd64
        freebsd     386
        freebsd     amd64
        freebsd     arm
        linux       386
        linux       amd64
        linux       arm
        linux       arm64
        linux       ppc64
        linux       ppc64le
        linux       mips
        linux       mipsle
        linux       mips64
        linux       mips64le
        netbsd      386
        netbsd      amd64
        netbsd      arm
        openbsd     386
        openbsd     amd64
        openbsd     arm
        plan9       386
        plan9       amd64
        solaris     amd64
        windows     386
        windows     amd64

    编译方式

    如果要对应用程序进行跨平台编译,首先需要设置GOOSGOARCH两个环境变量。然后编译方式同本平台编译方式相同。

    所以进行夸平台编译,为便于理解拆分开来需要执行两个步骤:

    1. 设置GOOSGOARCH两个环境变量
    2. 执行go build

    示例

    鉴于你可能需要编译多个平台的可执行程序,所以不建议你将GOOSGOARCH两个环境变量在bashrc之类的文件中进行设置。

    分两步操作也可能有点麻烦,你可以直接在一条命令中执行。如下:

    env GOOS=linux GOARCH=arm go build -v github.com/constabulary/gb/cmd/gb
    

    你也可以进入到project的根目录下,而不用在命令行中指定需要编译的project:

    env GOOS=linux GOARCH=arm go build .
    

    默认情况下go build会生成你package(project)名相同的可执行文件。如果你想指定生成的可执行文件的名字,需要使用-o选项:

    env GOOS=linux GOARCH=arm go build -o test.bin .
    

    参考链接:

    Go Optional environment variables

    Cross Compile with Go 1.5

    展开全文
  • Golang windows下交叉编译的方法 在CMD命令行中编译(示例编译64位linux程序) set GOARCH=amd64 set GOOS=linux go build -a 在windows10之前的系统版本上使用cmd命令行可以使用上述命令编译 在powershell...

    Golang windows下交叉编译的方法

        在CMD命令行中编译(示例编译64位linux程序)

    set GOARCH=amd64
    set GOOS=linux

    go build -a

    在windows10之前的系统版本上使用cmd命令行可以使用上述命令编译

        在powershell命令行中编译(示例编译64位linux程序)

    $env:GOOS="linux"
    $env:GOARCH="amd64"
    go build xxx.go

    在powershell上,环境变量的设置方式与cmd命令行做出了修改,所以导致目前大部分博客中写的golang的交叉编译命令失效,所以使用windows10 + powershell的用户将设置环境变量的方式修改成上文对应的即可

        PS:环境变量参数参考:
        GOARCH: amd64, 386, arm, ppc64, …
        GOOS: linux, darwin, windows, netbsd, …

    展开全文
  • go交叉编译arm上的程序

    千次阅读 2018-08-18 05:31:48
    Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。 Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main...

    Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。

    Mac 下编译 Linux 和 Windows 64位可执行程序

    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
    CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

    Linux 下编译 Mac 和 Windows 64位可执行程序

    CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
    CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

    Windows 下编译 Mac 和 Linux 64位可执行程序

    SET CGO_ENABLED=0
    SET GOOS=darwin
    SET GOARCH=amd64
    go build main.go
    SET CGO_ENABLED=0
    SET GOOS=linux
    SET GOARCH=amd64
    go build main.go

    GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
    GOARCH:目标平台的体系架构(386、amd64、arm)
    交叉编译不支持 CGO 所以要禁用它

    上面的命令编译 64 位可执行程序,你当然应该也会使用 386 编译 32 位可执行程序
    很多博客都提到要先增加对其它平台的支持,但是我跳过那一步,上面所列的命令也都能成功,且得到我想要的结果,可见那一步应该是非必须的,或是我所使用的 Go 版本已默认支持所有平台。

    展开全文
  • go交叉编译

    2019-03-05 16:38:58
    go交叉编译 Windows 下编译Linux 64位可执行程序: SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build filename.go CGO: 交叉编译不支持 CGO 所以要禁用它 GOOS: 目标平台的操作系统(darwin、freebsd...

    go交叉编译

    Windows 下编译Linux 64位可执行程序:

    SET CGO_ENABLED=0   
    SET GOOS=linux   
    SET GOARCH=amd64
    go build filename.go
    

    CGO: 交叉编译不支持 CGO 所以要禁用它
    GOOS: 目标平台的操作系统(darwin、freebsd、linux、windows)
    GOARCH: 目标平台的处理器架构(386、amd64、arm)

    展开全文
  • GO交叉编译

    2019-09-20 20:17:50
    编译前看下 arm-linux-gnueabihf-gcc -fuse-ld=gold -Wl,--version 是不是支持gold 连接 ,如果不支持,就得更换编译器了。gcc-7 的应该就没有问题 因为go just only support the gold linker! export GOARCH=arm ...
  • Go交叉编译

    千次阅读 2018-08-27 22:05:31
    golang交叉编译要保证golang版本在1.5以上,本解决方案实例代码1.9版本执行的。 GOOS=linux GOARCH=amd64 go build hello.go 这里用到了两个变量: GOOS:目标操作系统 GOARCH:目标操作系统的架构 OS...
  • go如何进行交叉编译

    2019-05-29 13:53:32
    golang交叉编译 问题 golang如何在一个平台编译另外一个平台可以执行的文件。比如在mac上编译Windows和linux可以执行的文件。那么我们的问题就设定成:如何在mac上编译64位linux的可执行文件。 解决方案 golang的...
  • Golang交叉编译(跨平台编译)简述

    千次阅读 2019-06-12 10:11:50
    Golang交叉编译一、何为交叉编译二、交叉编译前的准备安装TDM-GCC三、简述交叉编译四、实练1. 默认编译2.交叉编译一个Arm+Linux小总结 一、何为交叉编译 简单地说,就是在一个平台上生成另一个平台上的可执行代码。...
  • GO交叉编译

    千次阅读 2018-06-11 16:00:34
    Golang:1.10.3 首先查看golang的环境变量: go env set GOARCH=amd64 set GOBIN=E:\work\golang\goproj\bin set GOCACHE=C:\Users\soft\AppData\Local\go-build set GOEXE=.exe set GOHOSTARCH=amd64 set ...
  • Golang交叉编译中的那些坑

    千次阅读 2019-07-04 21:32:08
    最近两个月,一直在搞项目的国产化移植,把golang开发好的程序,运行在国产化平台上,操作系统基本都是基于Linux,但是CPU...Golang交叉编译 交叉编译 在X64上的ubuntu 16.04系统上编译出其他平台的可执行程序 查...
  • windows golang 交叉编译arm程序 golang 交叉编译不支持CGO, 所以 CGO_ENABLED=0 目标平台的体系架构(386、amd64、arm)为arm, 所以 GOARCH=arm 目标平台的操作系统(darwin、freebsd、linux、windows)为linux, ...
  • Golang 交叉编译与选择性编译

    千次阅读 2018-08-30 21:34:54
    Golang具有跨平台编译特性,省去了各个平台装编译环境的麻烦,设置起来也相当简单。 交叉编译 交叉编译主要是两个编译环境参数 $GOOS 和 $GOARCH 的设定。$GOOS代表编译的目标系统,$GOARCH代表编译的处理器体系...
  • Golang 交叉编译

    2018-08-27 08:20:17
    Go 交叉编译简介 https://blog.csdn.net/xingwangc2014/article/details/65013892 Golang 交叉编译 https://www.jianshu.com/p/4f79ae4f081c
  • golang编译源代码和交叉编译方法

    千次阅读 2019-06-06 10:44:38
    文章目录@[toc]golang编译源代码和交叉编译方法编译源代码编译go1.4编译go1.12交叉编译 golang编译源代码和交叉编译方法 编译源代码 golang编译其实很简单,下载一份最新的源代码后,进入src目录运行all.bash即可, ...
  • golang交叉编译

    万次阅读 2014-09-25 09:58:26
    golang传的很牛X,但不能交叉编译,对我来说一点用都没有,有个开源项目是用golang写的,如果不能在arm上用,那么我只能将它“翻译”成C,再集成到我的产品中,但我没有这个时间。好在交叉编译最后还是成功了。1. ...
  • Mac下进行golang交叉编译

    万次阅读 2015-08-27 20:13:11
    golang交叉编译的详细步骤
  • Golang 在 Mac、Linux、Windows 下如何交叉编译

    万次阅读 多人点赞 2019-01-22 09:58:32
    Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。Mac 下编译 Linux 和 Windows 64位可执行程序CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go ...
  • golang交叉编译CGO

    千次阅读 2019-10-14 16:34:51
    记录在macOS上编译Windows和Linux的go程序,带CGO调用C代码,比如go-sqlite3包,已测试通过。 参考链接: https://www.cnblogs.com/ibgo/p/6489488.html http://www.mingw-w64.org/doku.php/download/macports ...
  • 1.Windows里golang交叉编译问题现在go 的跨平台编译比较简单了,set GOARCH=amd64set GOOS=linux然后就可以了, go build出来的就是linux 64 位的可执行程序了https://www.cnblogs.com/lifeil/p/5408334.html此时...
  • 搭建go交叉编译环境

    千次阅读 2017-01-25 19:29:09
    1: go1.5开始使用了自居,意味的你编译其他平台的库你必须用go去...2:先安装一个版本的golang, brew install go3:安装完后, go env查看你的go环境4: 进行go的其他平台编译cd /usr/local/Cellar/go/1.7.4_2/libexec /
1 2 3 4 5 ... 20
收藏数 7,089
精华内容 2,835
热门标签
关键字:

go交叉编译