第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 ldflags 為二進(jìn)制文件提供一個(gè)在 golang 中不起作用的版本

使用 ldflags 為二進(jìn)制文件提供一個(gè)在 golang 中不起作用的版本

Go
滄海一幻覺(jué) 2022-11-23 20:19:22
main.go如下:package mainfunc main() {    println("hello world")}Makefile 如下:flags=-X main.version=1.5.0build:    go build -ldflags "$(flags)" -o main main.go然后我運(yùn)行make,得到主文件。在我跑步之后./main -v,我得到了:hello world為什么不顯示1.5.0?go 版本是go version go1.18 darwin/arm64,當(dāng)我運(yùn)行時(shí) go version -m main,我得到:main: go1.18        path    command-line-arguments        build   -compiler=gc        build   -ldflags="-X main.version=1.5.0"        build   CGO_ENABLED=1        build   CGO_CFLAGS=        build   CGO_CPPFLAGS=        build   CGO_CXXFLAGS=        build   CGO_LDFLAGS=        build   GOARCH=arm64        build   GOOS=darwin我有一個(gè)誤解ldflags。它的工作原理如下:package mainimport (    "fmt"    "os")var (    version string)func main() {    args := os.Args    if len(args) == 2 && (args[1] == "--version" || args[1] == "-v") {        fmt.Printf("project version: %s \n", version)        return    }}$ ./main -v project version: 1.5.0
查看完整描述

1 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

您使用 ldflags ( version) 設(shè)置的變量必須在包級(jí)別的包中聲明。您自己的處理-v必須執(zhí)行。


package main


import "flag"


var version string


func main() {

    var vFlag bool

    flag.BoolVar(&vFlag, "v", false, "show version")

    flag.Parse()

    

    if vFlag {

        println(version)

    } else {

        println("hello world")

    }

}

go build -ldflags "-X main.version=1.5.0" -o main main.go

./main -v

# 1.5.0

./main

# hello world


查看完整回答
反對(duì) 回復(fù) 2022-11-23
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)