亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

go build 的奇怪行為 cmd/

go build 的奇怪行為 cmd/

Go
蝴蝶不菲 2022-06-01 17:58:28
Go build 命令不會創建相同的二進制文件,它是錯誤的 cmd/ :首先好的(~/go/ 之前為空):$ find ..  ./cmd  ./cmd/api  ./cmd/api/main.go  我建立 :$ cd cmd/api; go build -v main.go    get "gopkg.in/yaml.v2": found meta tag get.metaImport{Prefix:"gopkg.in/yaml.v2", VCS:"git", RepoRoot:"https://gopkg.in/yaml.v2"} at //gopkg.in/yaml.v2?go-get=1    get "golang.org/x/sys": found meta tag get.metaImport{Prefix:"golang.org/x/sys", VCS:"git", RepoRoot:"https://go.googlesource.com/sys"} at //golang.org/x/sys?go-get=1   get "gopkg.in/check.v1": found meta tag get.metaImport{Prefix:"gopkg.in/check.v1", VCS:"git", RepoRoot:"https://gopkg.in/check.v1"} at //gopkg.in/check.v1?go-get=1   get "golang.org/x/text": found meta tag get.metaImport{Prefix:"golang.org/x/text", VCS:"git", RepoRoot:"https://go.googlesource.com/text"} at //golang.org/x/text?go-get=1   get "golang.org/x/tools": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools?go-get=1    go: downloading github.com/gin-gonic/gin v1.6.3    etc ....     go: finding golang.org/x/sys v0.0.0-20200116001909-b77594299b42  結果 :$ ls -l      total 14940       -rwxr-xr-x 1 fr3 nobody 15290667 May 12 14:00 main       -rw-r--r-- 1 fr3 nobody      619 May 12 13:41 main.go   現在使用 cmd/ :$ find ..  ./cmd   ./cmd/api  ./cmd/api/main.go  我使用 mod 命令:$ go mod init api  go: creating new go.mod: module api   $ go mod vendor   go: finding github.com/gin-gonic/gin v1.6.3   go: downloading github.com/gin-gonic/gin v1.6.3   etc ....   go: extracting github.com/go-playground/locales v0.13.0   vendor/ 被創建: ls -l    total 16     drwxr-xr-x 3 fr3 nobody 4096 May 12 13:42 cmd     -rw-r--r-- 1 fr3 nobody   61 May 12 14:07 go.mod    -rw-r--r-- 1 fr3 nobody 3872 May 12 14:07 go.sum     drwxr-xr-x 5 fr3 nobody 4096 May 12 14:07 vendor   $ mkdir target   go build  -o target/api cmd/api   $ ls -l target/total 5912   -rwxr-xr-x 1 fr3 nobody 6052601 May 12 14:08 api
查看完整描述

2 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

cd cmd/api; go build -v main.go

這不是如何go build使用的。go build與大多數go命令一樣,適用于,而不適用于文件。所以,你可以:

cd cmd/api; go build -v .

或者,從項目的根目錄:

go build -v ./cmd/api

這將在工作目錄中生成一個以包命名的二進制文件。您還可以使用-o標志(請參閱文檔)來選擇要輸出的二進制名稱和路徑。


查看完整回答
反對 回復 2022-06-01
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

來自 Go 文檔:

編譯單個主包時,build 將生成的可執行文件寫入以第一個源文件命名的輸出文件('go build ed.go rx.go' 寫入 'ed' 或 'ed.exe')或源代碼目錄( 'go build unix/sam' 寫入 'sam' 或 'sam.exe')。編寫 Windows 可執行文件時會添加“.exe”后綴。


查看完整回答
反對 回復 2022-06-01
  • 2 回答
  • 0 關注
  • 213 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號