zoukankan      html  css  js  c++  java
  • Go语言Mac、Linux、Windows 下交叉编译

    在很多时候,由于开发的方便,会有这样的场景出现,使用Mac开发或使用Windows开发,需要编译成Linux系统的执行文件,那么如何做到?Go语言提供了非常方便的命令行操作,即可实现。

    1、Mac下编译Linux, Windows

    # Linux
    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build filename.go
     
    # Windows
    CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build filename.go
    

    2、Linux下编译Mac, Windows

    # Mac
    CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build filename.go
     
    # Windows
    CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build filename.go
    

    3、Windows下编译Mac, Linux

    # Mac
    SET CGO_ENABLED=0
    SET GOOS=darwin
    SET GOARCH=amd64
    go build filename.go
     
    # Linux
    SET CGO_ENABLED=0
    SET GOOS=linux
    SET GOARCH=amd64
    go build filename.go
    

    4、参数说明

    查看环境:

        $> go env
        set GOARCH=amd64
        set GOBIN=
        set GOCACHE=C:UsersboyHanAppDataLocalgo-build
        set GOEXE=
        set GOHOSTARCH=amd64
        set GOHOSTOS=windows
        set GOOS=linux
        set GOPATH=C:Goworkspacestudysrc
        set GORACE=
        set GOROOT=C:Go
        set GOTMPDIR=
        set GOTOOLDIR=C:Gopkg	oolwindows_amd64
        set GCCGO=gccgo
        set CC=gcc
        set CXX=g++
        set CGO_ENABLED=0
        set CGO_CFLAGS=-g -O2
        set CGO_CPPFLAGS=
        set CGO_CXXFLAGS=-g -O2
        set CGO_FFLAGS=-g -O2
        set CGO_LDFLAGS=-g -O2
        set PKG_CONFIG=pkg-config
        set GOGCCFLAGS=-fPIC -m64 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:UsersboyHanAppDataLocalTempgo-build162645406=/tmp/go-build -gno-record-gcc-switches
    
    

  • 相关阅读:
    Java的类演进过程
    P112、面试题16:反转链表
    P107、面试题15:链表中倒数第K个结点
    Java对象相关元素的初始化过程
    P102、面试题14:调整数组顺序使奇数位于偶数前面
    P99、面试题13:在o(1)时间删除链表结点
    面试常考的数据结构Java实现
    Linux命令面试常考的简单汇总
    操作系统与进程基础知识
    python--process
  • 原文地址:https://www.cnblogs.com/haima/p/12041833.html
Copyright © 2011-2022 走看看