• golang交叉编译


    本地开发环境是os x 服务器是linux,所以需要编译linux用的go程序,方法如下:
    各平台的GOOS和GOARCH参考

    OS ARCH OS versionv

    linux 386 / amd64 / arm >= Linux 2.6

    darwin 386 / amd64 OS X (Snow Leopard + Lion)

    freebsd 386 / amd64 >= FreeBSD 7

    windows 386 / amd64 >= Windows 2000

    $ cd /usr/local/go/src
    $ sudo CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash
    

    这里并不是重新编译Go,因为安装Go的时候,只是编译了本地系统需要的东西;而需要跨平台交叉编译,需要在Go中增加对其他平台的支持。所以,有 ./make.bash 这么一个过程。

    执行结果类似如下:

    sudo CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash
    Password:
    Building C bootstrap tool.
    
    cmd/dist
    Building compilers and Go bootstrap tool for host, darwin/amd64.
    
    lib9
    libbio
    libmach
    misc/pprof
    cmd/addr2line
    cmd/cov
    cmd/nm
    cmd/objdump
    cmd/pack
    cmd/prof
    cmd/cc
    ……
    pkg/text/template/parse
    pkg/text/template
    pkg/go/doc
    pkg/go/build
    cmd/go
    pkg/runtime (linux/amd64)
    Building packages and commands for host, darwin/amd64.
    
    runtime
    errors
    sync/atomic
    unicode
    unicode/utf8
    math
    sync
    unicode/utf16
    crypto/subtle
    io
    syscall
    ……….
    net/rpc/jsonrpc
    testing/iotest
    testing/quick
    Building packages and commands for linux/amd64.
    
    runtime
    errors
    sync/atomic
    unicode
    unicode/utf8
    math
    sync
    unicode/utf16
    ……..
    testing
    net/rpc/jsonrpc
    testing/iotest
    testing/quick
    
    Installed Go for linux/amd64 in /usr/local/go
    Installed commands in /usr/local/go/bin
    

    到源代码目录下执行:

    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build sina.go
    

    不带前面参数的 go build 只是编译出开发环境适用的执行文件。

  • 相关阅读:
    jquery 添加关键字小插件
    打印出所有每一位都与其他位不重复的自然数
    尾递归版,斐波那契数列
    如何在移动端宽度自适应实现正方型?
    css隐藏元素的六类13种方法
    如何给行内元素设置宽高?
    css实现垂直水平居中的方法
    pwa
    目录树生成工具treer
    服务端返回的json数据,导致前端报错的原因及解决方法
  • 原文地址:https://www.cnblogs.com/weidao/p/5640198.html
Copyright © 2020-2023  润新知