Menu

메모용 개발 블로그

전체보기 > Develop > Go >

Go 빌드 타임 변수

2023-04-25 15:22:29

프로그램에 버전이나 혹은 빌드 시간 등을 넣고 싶을 수 있다.

이 경우 링커가 동작할 때. 값을 넘겨주어 전역 변수에서 사용할 수 있다.

우선 사용할 변수를 전역변수로 설정해둔다.

package main

import (
	"log"
)

var (
	Version = "dev"
)

func main() {
  log.Println(Version)
}

여기서는 대표적으로 Version을 프로그램에 넣고 싶을 경우이다.

아무래도 버전이라는 것은 실제 배포시에 버전이 기록되고 개발 시에는 개발 버전으로 명시할 필요가 있으니 dev라는 값을 주었다.

그 다음 일반적으로 빌드를 하면

go build

dev값을 그대로 출력할 것이다.

하지만, 다음과 같이 링커에게 전달될 인수를 추가할 수 있다.

go build -o cup-tools.exe -ldflags="-X 'main.Version=1.0.0'"

이렇게 하면 1.0.0 이라는 출력을 내보낼 것이다.