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
이라는 출력을 내보낼 것이다.