https://kazuhira-r.hatenablog.com/entry/2021/03/08/003752

og-image-1500.png

これは、なにをしたくて書いたもの?

記事や書籍などで、以下のような記述を見かけます。

$ go build -ldflags '-X main.xxxx=....'

この-ldflags-Xの指定でプログラム内の値を変えているようなのですが、「変えられます」という情報以外のことを あまり見かけないので調べてみることにしました。

環境

今回の環境は、こちらです。

$ go version
go version go1.16 linux/amd64

Go 1.16ですね。

まずは試してみる

Goのプロジェクトを作成。

$ go mod init sample
go: creating new go.mod: module sample

こんなプログラムを用意。

main.go

package main

import (
    "fmt"
)

var (
    Message = "Hello World!!"
)

func main() {
    fmt.Printf("Message = %s\\n", Message)
}

ビルド。

$ go build

実行。