golang下的GOPATH路徑問題及解決
更新時間:2024年01月19日 16:21:37 作者:騎風追馬
為了方便,我一般使用task來管理項目的編譯等事項,由于才入門go,所以碰到一個問題,以此篇為記,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
背景
我需要開發(fā)一個組建,所以代碼結(jié)構(gòu)沒有src目錄,并且項目放在GOPATH路徑的src目錄下
我在編譯二進制文件的時候使用了下面的命令
GOPATH=`pwd` GOBIN=`pwd` go install main.go
編譯報錯,提示import的類庫找不到
排錯分析
- 檢查env是否正確 命令:
go env
,檢查結(jié)果正常 - 檢查golang的GOPATH和GOROOT配置是否正常,檢查通過
- 分析編譯命令找到問題
問題
我在編譯的時候重新定義了GOPATH路徑。
在go語言編譯的時候,它會去找GOPATH和GOROOT下面的src目錄。
現(xiàn)在GOROOT=~/gopath/
,那么首先編譯器到GOROOT
下找import的包,如果沒有找到,則到GOPATH路徑下尋找
此時GOPATH=`pwd`
,也就是項目路徑,那么它會到項目路徑下的src目錄下尋找。
由于我沒有src目錄,所以找不到,從而編譯報錯
解決
問題其實出在GOPATH下,由于當前項目文件已經(jīng)處于GOPATH的src下,所以只需要刪除GOPATH即可。
正確編譯命令:
GOBIN=`pwd` go install main.go
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Golang中的Mutex并發(fā)原語
Mutex?是?Go?語言中互斥鎖的實現(xiàn),它是一種同步機制,用于控制多個?goroutine?之間的并發(fā)訪問。本文將著重介紹?Go?的?Mutex?并發(fā)原語,希望對大家有所幫助
2023-03-03
Go?語言進階單元測試示例詳解
這篇文章主要為大家介紹了Go?語言進階單元測試示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
2023-01-01
在Linux系統(tǒng)中安裝Go語言的詳細教程
這篇文章主要介紹了在Linux系統(tǒng)中安裝Go語言的詳細教程,由于國內(nèi)很多人對谷歌的盲目追捧,導(dǎo)致Go語言在國內(nèi)的人氣遠超國外...需要的朋友可以參考下
2015-06-06
一文帶你了解Golang中reflect反射的常見錯誤
go?反射的錯誤大多數(shù)都來自于調(diào)用了一個不適合當前類型的方法,?而且,這些錯誤通常是在運行時才會暴露出來,而不是在編譯時,如果我們傳遞的類型在反射代碼中沒有被覆蓋到那么很容易就會?panic。本文就介紹一下使用?go?反射時很大概率會出現(xiàn)的錯誤,需要的可以參考一下
2023-01-01
Golang實現(xiàn)JWT身份驗證的示例詳解
JWT(JSON Web Token)是一種開放標準(RFC 7519),用于在網(wǎng)絡(luò)應(yīng)用間安全地傳輸聲明,本文主要為大家詳細介紹了Golang實現(xiàn)JWT身份驗證的相關(guān)方法,希望對大家有所幫助
2024-03-03
Gin框架使用panic處理中間件問題詳解
這篇文章主要介紹了Gin框架使用panic處理中間件問題,在 Gin 框架中,錯誤處理和 panic 處理是非常重要的功能。當處理 HTTP 請求時,可能會出現(xiàn)各種各樣的錯誤,例如數(shù)據(jù)庫連接錯誤、網(wǎng)絡(luò)錯誤、權(quán)限問題等等
2023-04-04