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

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

如何在 Go 中嵌入隱藏文件?

如何在 Go 中嵌入隱藏文件?

Go
MMTTMM 2022-09-26 15:44:21
我想嵌入隱藏的文件,在Go中嵌入包。例如 git 信息。例如package mainimport _ "embed"var (    //go:embed .git/HEAD    head string)func main() {    print(head)}但它發(fā)生編譯錯(cuò)誤。$ go build  main.go:6:13: pattern .git/HEAD: cannot embed file .git/HEAD: in invalid directory .git我嘗試了這些方法,但沒有成功。建立符號鏈接并嵌入用雙引號轉(zhuǎn)義和換行添加這到底是什么意思?files outside the package's module這聽起來不像是關(guān)于go模塊的。為什么下面的文件是好的,但不是?.git/*$ mkir .hidden && echo "hello world" > .hidden/hello.txt$ tree -a.|-- .hidden|   `-- hello.txt  <- is package's module ?|-- go.mod|-- go_embed_git_version`-- main.go和 之間有什么區(qū)別?.git/HEAD.hidden/hello.txt
查看完整描述

1 回答

?
守著星空守著你

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

該行為已明確記錄:


模式不得與包模塊外部的文件(如 符號鏈接)匹配。空目錄的匹配項(xiàng)將被忽略。之后,行中的每個(gè)模式必須至少匹配一個(gè)文件或非空目錄。.git/*//go:embed


將提交 ID 放入代碼中的更好方法是將其包含在命令行中,例如此處所述。如果您的代碼如下所示:go build


package main


import "fmt"


var (

    head string = "development"

)


func main() {

    fmt.Println(head)

}

你像這樣構(gòu)建你的二進(jìn)制文件:


go build -ldflags "-X main.head=$(git rev-parse HEAD)"

然后運(yùn)行代碼將打印生成代碼時(shí)的 HEAD 提交 ID。


在 中自動(dòng)執(zhí)行此類操作是很常見的,如下所示:Makefile


COMMITID = $(shell git rev-parse HEAD)

GOLDFLAGS = -X 'main.head=$(COMMITID)'


all: example


example: main.go

    go build -ldflags "$(GOLDFLAGS)"


clean:

    rm -f example

然后,您只需鍵入以使用正確的命令行標(biāo)志構(gòu)建二進(jìn)制文件。make


查看完整回答
反對 回復(fù) 2022-09-26
  • 1 回答
  • 0 關(guān)注
  • 137 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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