zoukankan      html  css  js  c++  java
  • Golang 交叉编译

    各平台的GOOS和GOARCH参考

    OS ARCH OS version

    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 只是编译出开发环境适用的执行文件。

    原文来自:http://m.oschina.net/blog/131480

  • 相关阅读:
    细看运维85条军规,是否触动了你内心深处那根弦?
    SQL语句的CRUD
    sqlserver数据库类型对应Java中的数据类型
    Struts2文件上传--多文件上传(插件uploadify)
    web.xml文件详解
    关于Java的散列桶, 以及附上一个案例-重写map集合
    hibernate多表查询封装实体
    spring的7个模块
    Struts标签库详解【3】
    Struts标签库详解【2】
  • 原文地址:https://www.cnblogs.com/Jim-william/p/5038965.html
Copyright © 2011-2022 走看看