
h6.jpeg
在 xxx.go 文件開(kāi)頭添加代碼 //go:build debug
? 不加 //go:build debug 的文件 → 永遠(yuǎn)會(huì)被編譯(默認(rèn)行為)
? 加了 //go:build debug 的文件 → 「默認(rèn)不編譯」,只有運(yùn)行編譯命令時(shí)手動(dòng)加 -tags debug 才會(huì)編譯
通俗解釋
- 加了這個(gè)注釋的文件,默認(rèn)是被忽略的,生產(chǎn)打包go build/go run 完全不會(huì)包含它;
- 只有寫(xiě)命令:
go run -tags debug xxx.go或go build -tags debug xxx.go,這個(gè)文件才會(huì)被編譯進(jìn)去; - 反向用法:
//go:build !debug→ 意思是「只有不加 debug 標(biāo)簽編譯時(shí),這個(gè)文件才生效」,注意有個(gè)!
例如
情況 1:你的文件第一行寫(xiě)了 //go:build debug
- 執(zhí)行
go run main.go→ 這個(gè)文件不參與編譯(被跳過(guò)) - 執(zhí)行
go run -tags debug main.go→ 這個(gè)文件參與編譯
情況 2:你的文件沒(méi)寫(xiě)這個(gè)注釋
- 不管執(zhí)行
go run main.go還是go run -tags debug main.go→ 都會(huì)編譯這個(gè)文件
使用vscode系列編輯器時(shí),用到了 gopls 語(yǔ)言服務(wù)器,默認(rèn)會(huì)報(bào)下面的警告提示
No packages found for open file D:\site\zero-core\search\tree_debug.go. This file may be excluded due to its build tags; try adding "-tags=<build tag>" to your gopls "buildFlags" configuration See the documentation for more information on working with build tags: https://github.com/golang/tools/blob/master/gopls/doc/settings.md#buildflags. go list
settings.json 配置中,json第一層添加如下配置即可
"gopls": {
"buildFlags": ["-tags=debug"]
}