環境變量GOBIN導致GoClipse運行出現異常


 

Windows 10家庭中文版,go version go1.11 windows/amd64,

Eclipse IDE for C/C++ Developers Photon Release (4.8.0), GoClipse 0.16.1(v201607061938),

 

背景:在前面開發Go項目時,自己已經把環境變量GOBIN刪除了,並且程序按照預期運行——在Eclipse的Console中輸出測試結果。

 

之前使用Eclipse+GoClipse開發Go項目時,遇到了下面的異常:
Executable file (...) doesn't exist.

 

此時,還存在一個項目go961,是之前建立的,其中的程序按照預期運行。

 

問題:為何這個新建的項目就無法運行呢?

之前測試項目go961時,刪除了環境變量GOBIN就正常了啊!

 

環境變量部分的異常:

檢查Windows 10環境變量時,沒有發現環境變量GOBIN,可是,在使用go env命令查看時卻發現GOBIN是有值的,並非為空。

 

正是因為GOBIN的值不為空,於是,異常產生了——編譯生成的可執行文件沒有在項目的bin目錄下,而是存在於GOROOT的bin目錄下,但Eclipse找的是項目的bin下的可執行文件,但沒找到。

 

接着,在Eclipse中各種配置、比較正常的項目go961和異常的項目go961——沒有發現配置差別、網絡查找資料——比如下面這篇:

https://github.com/GoClipse/goclipse/issues/197

資料中也是說需要把GOBIN設置為空:

 

可是,沒有設置GOBIN,可命令go env中的GOBIN卻不為空!是哪里影響到了呢?

 

在耗時一兩個小時卻無果后,靈光一閃新建環境變量GOBIN,再刪除它

因為GOBIN需要絕對路徑,所以,上面的設置是不對的,但俺們進行此操作的目的是——新建后刪除它!

 

接下來,刪除剛剛建立的GOBIN,再 重啟Eclipse 測試go962是否可以運行——成功運行!

-刪除后,命令go env顯示GOBIN為空:

 

測試:重啟計算機,執行go env命令,仍然顯示GOBIN為空!

 

-測試go962的結果

 

-在項目go962下新建app進行測試(參考昨天讀的關於go項目目錄結構的文章)——成功

 

-新建項目go910,執行項目中的程序,成功!

 

總結:

解決問題的原則就是 保持 GOBIN 為空!

 

發生問題的原因推測:

1.項目go962是之前還項目go961一起建立的,在建立項目go962時,可能自己還沒有刪除環境變量GOBIN;

2.在后面的學習Go語言開發時,自己還嘗試了使用LiteIDE,可能是在使用其過程中,GOBIN被它更改到 某個地方 了,雖然Windows的環境變量對話框中沒有,但go env執行后怎么會出現呢?

  剛剛測試使用LiteIDE運行了一個程序,成功,運行完畢后,go env中的GOBIN還是為空!

 

參考鏈接:

1.https://github.com/GoClipse/goclipse/issues/197

2.GOROOT、GOPATH、GOBIN、project目錄(https://blog.csdn.net/xiongwenwu/article/details/52534949)

 

補充說明,

這次刪除GOBIN后,執行Eclipse、LiteIDE中的Go項目時,GOROOT下的bin中沒有出現項目的可執行文件了!

 

180910-1445更新:

使用visual studio code編寫了一個go程序 runoob.go,位於app2目錄下:

package main

var a = "菜鳥教程"
var b string = "runoob.com"
var c bool

func main() {
	println(a, b, c)
}

通過命令行執行遇到下面的錯誤

D:\ws\golang\prj1\src>go install ./app2
go install: no install location for directory D:\ws\golang\prj1\src\app2 outside GOPATH
        For more details see: 'go help gopath'


D:\ws\golang\prj1\src>go install ./app2/runoob.go
go install: no install location for .go files listed on command line (GOBIN not set)

D:\ws\golang\prj1\src\app2>go install runoob.go
go install: no install location for .go files listed on command line (GOBIN not set)

設置GOBIN后,可以使用go install運行程序:

D:\ws\golang\prj1\src\app2>go install runoob.go

D:\ws\golang\prj1\src\app2>runoob.exe
菜鳥教程 runoob.com false

D:\ws\golang\prj1\src\app2>dir
 驅動器 D 中的卷是 新加卷
 卷的序列號是 BAD3-E0B3

 D:\ws\golang\prj1\src\app2 的目錄

2018/09/10  14:44    <DIR>          .
2018/09/10  14:44    <DIR>          ..
2018/09/10  14:44         1,021,440 runoob.exe
2018/09/10  14:40               118 runoob.go
               2 個文件      1,021,558 字節
               2 個目錄 78,705,295,360 可用字節

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM