[초보자용] Go 언어의 교차 컴파일

3557 단어 Go
Go 언어를 교차 번역할 수 있다고 하는데 어떡하지?실제 행동이요?이런 의문이 있어서 해봤어요.결론은 지정된 매개 변수의 값만 알면 간단하게 컴파일하고 실행할 수 있다는 것이다.이 글은 실제적으로 하나의 서로 다른 구조의 집행만 소개한다([darwin,amd64]->집행 [windows,386]).

절차.

  • Mac High Sierra(64비트)와 Windows7(32비트)
  • 준비
  • Mac로 샘플 제작 프로그램
  • Mac로 교차 컴파일 수행
  • Windows에서 실행
  • 샘플 프로그램


    나는 A Tour of Go에서 아래의 병렬 처리 프로그램을 빌려 왔다.
    main.go
    package main
    
    import (
        "fmt"
        "time"
    )
    
    func say(s string) {
        for i := 0; i < 5; i++ {
            time.Sleep(100 * time.Millisecond)
            fmt.Println(s)
        }
    }
    
    func main() {
        go say("world")
        say("hello")
    }
    
    

    교차 컴파일


    목표 구조 설정$GOOS$GOARCH에 따라설정치가 뭐예요?그러나 공식 사이트에 상세한 설명이 있다.이번 목표는 윈도 7(32bits)이기 때문에 꼴찌 [windows386]다.
    $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
    linux
    s390x
    netbsd
    386
    netbsd
    amd64
    netbsd
    arm
    openbsd
    386
    openbsd
    amd64
    openbsd
    arm
    plan9
    386
    plan9
    amd64
    solaris
    amd64windows 386windows
    amd64
    편역은 아래와 같다.간단해.
    $ GOOS=windows GOARCH=386 go build main.go
    
    완료 시main.exe는 Windows 실행 파일과 같습니다.

    Windows에서 실행


    이 실행 파일을 Windows로 복사합니다.그런 다음 명령 프롬프트를 시작하고 실행합니다.문제없이 실행했다.

    감상


    실행 아키텍처에 신경 쓰지 않고 CUI 도구를 제작해 배포할 수 있어 좋다.

    좋은 웹페이지 즐겨찾기