GO 开发常见问题
編譯問題
CGO
如果import的模塊使用了cgo,需要設(shè)置環(huán)境變量CGO_ENABLE=0,這樣編譯出來的可執(zhí)行程序才不會(huì)依賴動(dòng)態(tài)庫,例如:
CGO_ENABLED=0 go build -o haha *.go
gopath
代碼倉未使用gomodule時(shí)怎么編譯?
代碼要放到src目錄下,比如有代碼倉aaa,則可以創(chuàng)建目錄:/root/code/src,把a(bǔ)aa放到src目錄下,編譯命令:
gomodule
go get xxx
GO111MODULE 打開時(shí)
xxx代碼下載到${GOPATH}/pkg/mod/cache/download目錄下
GO111MODULE 關(guān)閉時(shí)
xxx代碼下載到${GOPATH}/src目錄下
開發(fā)問題
一個(gè)package中的函數(shù)被另一個(gè)package的函數(shù)調(diào)用,這個(gè)函數(shù)的第一個(gè)字母需要大寫,否則不能被調(diào)用
一個(gè)目錄下只能有一個(gè)packege
開發(fā)環(huán)境問題
使用vscode進(jìn)行g(shù)o開發(fā)
使用gomodule進(jìn)行包管理的工程,無法跳轉(zhuǎn),需執(zhí)行:go mod vendor
總結(jié)