解決GOPATH在GOLAND中的坑
首先我的環(huán)境已配置好:
GO的目錄結(jié)構(gòu)是:
add.go
package calc //函數(shù)名必須大寫(xiě)首字母,不然外部包找不到 func Add(a int,b int)(int){ return a+b }
sub.go
package calc func Sub(a int,b int)(int){ return a-b }
執(zhí)行文件,main.go
package main import "fmt" //導(dǎo)入包路徑,這里src省略,默認(rèn)加在GOPATH import "go_dev/day1/package_example/calc" func main(){ sum := calc.Add(100,300) sub := calc.Sub(200,100) fmt.Println(sum,sub) }
在cmd正確執(zhí)行是:
這樣是沒(méi)問(wèn)題的,GOPATH已經(jīng)確定正確
但是GOLAND有個(gè)坑
在IDE中執(zhí)行一直報(bào)錯(cuò):
這里的GOPATH已經(jīng)出錯(cuò)了,所以編譯找不到,我檢查了go env也是正確的GOPATH....
原來(lái)我忘記了GOLAND IDE中也有設(shè)置:
在這里修改為正確的GOPATH,再次執(zhí)行:
沒(méi)毛病了 :)
補(bǔ)充:golang的gopath和goroot
近期入門golang,第一個(gè)坑 gopath和goroot。在此做個(gè)記錄用
我的環(huán)境:
golang 1.9.4
centos7.5 x64
安裝略過(guò)。
大致介紹:
gopath:golang的工作目錄和go get下載目錄,項(xiàng)目目錄。
goroot:golang的語(yǔ)言安裝目錄
GOPATH設(shè)置
go 命令依賴一個(gè)重要的環(huán)境變量:$GOPATH
(注:這個(gè)不是Go安裝目錄。下面以筆者的工作目錄為示例,如果你想不一樣請(qǐng)把GOPATH替換成你的工作目錄。)
在類 Unix 環(huán)境下大概這樣設(shè)置:
export GOPATH=/tmp/mygo
GOPATH允許多個(gè)目錄,當(dāng)有多個(gè)目錄時(shí),請(qǐng)注意分隔符,Linux系統(tǒng)是冒號(hào),當(dāng)有多個(gè)GOPATH時(shí),默認(rèn)會(huì)將go get的內(nèi)容放在第一個(gè)目錄下。
$GOPATH 目錄約定有三個(gè)子目錄:
GOPATH下的src目錄就是接下來(lái)開(kāi)發(fā)程序的主要目錄,所有的源碼都是放在這個(gè)目錄下面,那么一般我們的做法就是一個(gè)目錄一個(gè)項(xiàng)目,例如: $GOPATH/src/mymath 表示mymath這個(gè)應(yīng)用包或者可執(zhí)行應(yīng)用,這個(gè)根據(jù)package是main還是其他來(lái)決定,main的話就是可執(zhí)行應(yīng)用,其他的話就是應(yīng)用包,這個(gè)會(huì)在后續(xù)詳細(xì)介紹package。
src 存放源代碼(比如:.go .c .h .s等)
pkg 編譯后生成的文件(比如:.a)
bin 編譯后生成的可執(zhí)行文件(為了方便,可以把此目錄加入到 $PATH 變量中,如果有多個(gè)gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目錄)
我用是
這個(gè)開(kāi)發(fā)在設(shè)置中
其中index entire GOPATH我一般去掉勾選,因?yàn)槲伊?xí)慣每個(gè)項(xiàng)目單獨(dú)一個(gè)環(huán)境,不與其他項(xiàng)目公用
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
go語(yǔ)言使用Casbin實(shí)現(xiàn)角色的權(quán)限控制
Casbin是用于Golang項(xiàng)目的功能強(qiáng)大且高效的開(kāi)源訪問(wèn)控制庫(kù)。本文主要介紹了go語(yǔ)言使用Casbin實(shí)現(xiàn)角色的權(quán)限控制,感興趣的可以了解下2021-06-06go使用consul實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)及配置共享實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了go使用consul實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)及配置共享實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05基于Go語(yǔ)言搭建靜態(tài)文件服務(wù)器的詳細(xì)教程
Go 是一個(gè)開(kāi)源的編程語(yǔ)言,它能讓構(gòu)造簡(jiǎn)單、可靠且高效的軟件變得容易,本文給大家介紹了基于Go語(yǔ)言搭建靜態(tài)文件服務(wù)器的詳細(xì)教程,文中通過(guò)圖文和代碼講解的非常詳細(xì),需要的朋友可以參考下2024-10-10Go語(yǔ)言中程序是怎么編譯的實(shí)現(xiàn)
本文主要介紹了Go語(yǔ)言中程序是怎么編譯的實(shí)現(xiàn),深入探討Go語(yǔ)言的編譯機(jī)制和最新的模塊管理系統(tǒng)Go Modules的使用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06Go語(yǔ)言面向?qū)ο笾械亩鄳B(tài)你學(xué)會(huì)了嗎
面向?qū)ο笾械亩鄳B(tài)(Polymorphism)是指一個(gè)對(duì)象可以具有多種不同的形態(tài)或表現(xiàn)方式,本文將通過(guò)一些簡(jiǎn)單的示例為大家講解一下多態(tài)的實(shí)現(xiàn),需要的可以參考下2023-07-07淺談beego默認(rèn)處理靜態(tài)文件性能低下的問(wèn)題
下面小編就為大家?guī)?lái)一篇淺談beego默認(rèn)處理靜態(tài)文件性能低下的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06windows安裝部署go超詳細(xì)實(shí)戰(zhàn)記錄(實(shí)測(cè)有用!)
Golang語(yǔ)言在近年來(lái)因?yàn)槠涓咝阅堋⒕幾g速度快、開(kāi)發(fā)成本低等特點(diǎn)逐漸得到大家的青睞,這篇文章主要給大家介紹了關(guān)于windows安裝部署go超詳細(xì)實(shí)戰(zhàn)的相關(guān)資料,需要的朋友可以參考下2023-02-02golang channel讀取數(shù)據(jù)的幾種情況
本文主要介紹了golang channel讀取數(shù)據(jù)的幾種情況,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02