Go Course: 빌드

8228 단어 beginnerstutorialgo
정적 바이너리를 빌드하는 것은 코드를 효율적으로 제공할 수 있게 해주는 Go의 최고의 기능 중 하나입니다.
go build 명령을 사용하면 매우 쉽게 이 작업을 수행할 수 있습니다.

package main

import "fmt"

func main() {
    fmt.Println("I am a binary!")
}



$ go build

이것은 우리 모듈의 이름을 가진 바이너리를 생성해야 합니다. 예를 들어, 여기에 example가 있습니다.

출력을 지정할 수도 있습니다.

$ go build -o app

이제 이것을 실행하기 위해 실행만 하면 됩니다.

$ ./app
I am a binary!

예, 그렇게 간단합니다!

이제 몇 가지 중요한 빌드 시간 변수에 대해 이야기해 보겠습니다.
  • GOOSGOARCH

  • 이러한 환경 변수는 다양한 빌드 이동 프로그램을 사용하는 데 도움이 됩니다operating systems.
    및 기본 프로세서architectures .
    go tool 명령을 사용하여 지원되는 모든 아키텍처를 나열할 수 있습니다.

    $ go tool dist list
    android/amd64
    ios/amd64
    js/wasm
    linux/amd64
    windows/arm64
    .
    .
    .
    

    다음은 macOS에서 실행 가능한 창을 빌드하는 예입니다!

    $ GOOS=windows GOARCH=amd64 go build -o app.exe
    

  • CGO_ENABLED

  • 이 변수를 사용하면 Go에서 C 코드를 호출하는 방법인 CGO 을 구성할 수 있습니다.

    이를 통해 외부 종속성 없이 작동하는 statically linked binary을 생성할 수 있습니다.

    이는 최소한의 외부 종속성으로 도커 컨테이너에서 go 바이너리를 실행하려는 경우에 매우 유용합니다.

    사용 방법의 예는 다음과 같습니다.

    $ CGO_ENABLED=0 go build -o app
    



    이 문서는 Github에서 사용할 수 있는 내 오픈 소스Go Course의 일부입니다.


    카란프라탑싱 / 고 코스


    Go 프로그래밍 언어의 기본 및 고급 기능을 마스터하세요.





    코스로 이동


    이 과정에 오신 것을 환영합니다. Go를 배워 주셔서 감사합니다. 이 과정이 훌륭한 학습 경험을 제공하기를 바랍니다.
    이 과정은 mywebsite 및 onEducative.io에서도 사용할 수 있습니다.

    목차



  • 시작하기
  • What is Go?
  • Why learn Go?
  • Installation and Setup


  • 제1장
  • Hello World
  • Variables and Data Types
  • String Formatting
  • Flow Control
  • Functions
  • Modules
  • Workspaces
  • Packages
  • Useful Commands
  • Build


  • 제2장
  • Pointers
  • Structs
  • Methods
  • Arrays and Slices
  • Maps


  • 제3장
  • Interfaces
  • Errors
  • Panic and Recover
  • Testing
  • Generics


  • 제4장
  • Concurrency
  • Goroutines
  • Channels
  • Select
  • Sync Package
  • Advanced Concurrency Patterns
  • Context


  • 부록
  • Next Steps
  • References


  • 이동이란 무엇입니까?


    Go(Golang이라고도 함)는 2007년 Google에서 개발하고 2009년에 오픈 소스로 공개된 프로그래밍 언어입니다.
    단순성, 신뢰성 및 효율성에 중점을 둡니다. 정적으로 유형이 지정되고 컴파일된 언어의 효율성, 속도 및 안전성을 용이성과 결합하도록 설계되었습니다.

    View on GitHub

    좋은 웹페이지 즐겨찾기