golang下的GOPATH路徑問題及解決
背景
我需要開發(fā)一個(gè)組建,所以代碼結(jié)構(gòu)沒有src目錄,并且項(xiàng)目放在GOPATH路徑的src目錄下
我在編譯二進(jìn)制文件的時(shí)候使用了下面的命令
GOPATH=`pwd` GOBIN=`pwd` go install main.go
編譯報(bào)錯(cuò),提示import的類庫找不到
排錯(cuò)分析
- 檢查env是否正確 命令:
go env
,檢查結(jié)果正常 - 檢查golang的GOPATH和GOROOT配置是否正常,檢查通過
- 分析編譯命令找到問題
問題
我在編譯的時(shí)候重新定義了GOPATH路徑。
在go語言編譯的時(shí)候,它會(huì)去找GOPATH和GOROOT下面的src目錄。
現(xiàn)在GOROOT=~/gopath/
,那么首先編譯器到GOROOT
下找import的包,如果沒有找到,則到GOPATH路徑下尋找
此時(shí)GOPATH=`pwd`
,也就是項(xiàng)目路徑,那么它會(huì)到項(xiàng)目路徑下的src目錄下尋找。
由于我沒有src目錄,所以找不到,從而編譯報(bào)錯(cuò)
解決
問題其實(shí)出在GOPATH下,由于當(dāng)前項(xiàng)目文件已經(jīng)處于GOPATH的src下,所以只需要?jiǎng)h除GOPATH即可。
正確編譯命令:
GOBIN=`pwd` go install main.go
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Go語言實(shí)現(xiàn)字符串搜索算法Boyer-Moore
Boyer-Moore?算法是一種非常高效的字符串搜索算法,被廣泛的應(yīng)用于多種字符串搜索場(chǎng)景,下面我們就來學(xué)習(xí)一下如何利用Go語言實(shí)現(xiàn)這一字符串搜索算法吧2023-11-11在Linux系統(tǒng)中安裝Go語言的詳細(xì)教程
這篇文章主要介紹了在Linux系統(tǒng)中安裝Go語言的詳細(xì)教程,由于國內(nèi)很多人對(duì)谷歌的盲目追捧,導(dǎo)致Go語言在國內(nèi)的人氣遠(yuǎn)超國外...需要的朋友可以參考下2015-06-06一文帶你了解Golang中reflect反射的常見錯(cuò)誤
go?反射的錯(cuò)誤大多數(shù)都來自于調(diào)用了一個(gè)不適合當(dāng)前類型的方法,?而且,這些錯(cuò)誤通常是在運(yùn)行時(shí)才會(huì)暴露出來,而不是在編譯時(shí),如果我們傳遞的類型在反射代碼中沒有被覆蓋到那么很容易就會(huì)?panic。本文就介紹一下使用?go?反射時(shí)很大概率會(huì)出現(xiàn)的錯(cuò)誤,需要的可以參考一下2023-01-01Go語言實(shí)現(xiàn)并發(fā)控制的常見方式詳解
這篇文章主要為大家詳細(xì)介紹了Go語言實(shí)現(xiàn)并發(fā)控制的幾種常見方式,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考一下2024-03-03Golang實(shí)現(xiàn)JWT身份驗(yàn)證的示例詳解
JWT(JSON Web Token)是一種開放標(biāo)準(zhǔn)(RFC 7519),用于在網(wǎng)絡(luò)應(yīng)用間安全地傳輸聲明,本文主要為大家詳細(xì)介紹了Golang實(shí)現(xiàn)JWT身份驗(yàn)證的相關(guān)方法,希望對(duì)大家有所幫助2024-03-03