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

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

進行構建:“找不到包”(即使設置了GOPATH)

進行構建:“找不到包”(即使設置了GOPATH)

Go
MMTTMM 2021-05-13 18:27:59
即使GOPATH設置正確,我仍然無法“運行”或“運行”來找到自己的軟件包。我究竟做錯了什么?$ echo $GOROOT/usr/local/go$ echo $GOPATH/home/mitchell/go$ cat ~/main.gopackage mainimport "foobar"func main() { }$ cat /home/mitchell/go/src/foobar.gopackage foobar$ go build main.gomain.go:3:8: import "foobar": cannot find package
查看完整描述

3 回答

?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

它不起作用,因為您的foobar.go源文件不在名為的目錄中foobargo buildgo install嘗試匹配目錄,而不是源文件。

  1. 設置$GOPATH為有效目錄,例如export GOPATH="$HOME/go"

  2. 移動foobar.go$GOPATH/src/foobar/foobar.go與建筑應該只是罰款。

建議的其他步驟:

  1. 添加$GOPATH/bin到您的$PATH依據:PATH="$GOPATH/bin:$PATH"

  2. 移至main.go的子文件夾$GOPATH/src,例如$GOPATH/src/test

  3. go install test現在應該在$GOPATH/bin其中創建一個可執行文件,可以通過test在終端中鍵入來調用該可執行文件。


查看完整回答
反對 回復 2021-05-24
?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

由于您的意思是GOPATH,請參閱fasmat的答案(已批準)


如“如何找回我的包裹? ”中所述,您需要將包裹xxx放在目錄中xxx。


請參閱Go語言規范:


package math

一組共享相同文件的文件PackageName形成了包的實現。

一個實現可能要求包的所有源文件都駐留在同一目錄中。


該代碼組織提到:


在構建導入軟件包“ widget”的程序時,該go命令會src/pkg/widget在Go根目錄中查找,然后(如果在此處未找到軟件包源)src/widget將按順序在每個工作空間中進行搜索。


(“工作區”是您中的路徑條目GOPATH:該變量可以引用多個路徑以使您的“ src, bin, pkg”成為)


(原始答案)


您還應該將其設置GOPATH為?/ go,而不是GOROOT,如“如何編寫Go代碼”中所示。


Go路徑用于解析導入語句。它由go / build包實現并記錄在文件中。


在GOPATH環境變量列表地方尋找Go代碼。

在Unix上,該值是用冒號分隔的字符串。

在Windows上,該值為分號分隔的字符串。

在計劃9中,該值是一個列表。


不同于GOROOT:


Go二進制發行版假定它們將被安裝在Windows中/usr/local/go(或c:\Go在Windows下),但是可以將它們安裝在其他位置。

如果這樣做,則GOROOT在使用Go工具時,需要將環境變量設置為該目錄。


查看完整回答
反對 回復 2021-05-24
  • 3 回答
  • 0 關注
  • 381 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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