解決GOPATH在GOLAND中的坑

2022-09-22 01:18:08 字數 1579 閱讀 5503

首先我的環境已配置好:

go的目錄結構是:

add.go

package calc

//函式名必須大寫首字母,不然外部包找不到

func add(a int,b int)(int)

sub.go

pac calc

func sub(a int,b int)(int)

執行檔案,main.go

package main

import "fmt"

//匯入包路徑,這裡src省略,預設加在gopath

import "go_dev/day1/packawww.cppcns.comge_example/calc"

func main()

在cmd正確執行是:

這樣是沒問題的,gopath已經確定正確

但是goland有個坑

在ide中執行一直報錯:

這裡的gopath已經出錯了,所以編譯找不到,我檢查了go env也是正確的gopath....

原來我忘記了goland ide中也有設定:

在這裡修改為正確的gopath,再次執行:

沒毛病了 :)

補充:golang的gopath和goroot

近期入門golang,第乙個坑 gopath和goroot。在此做個記錄用

我的環境:

golang 1.9.4

centos7.5 x64

安裝略過。

大致介紹:

gopath:golang的工作目錄和go get**目錄,專案目錄。

goroot:golang的語言安裝目錄

gopath設定

go 命令依賴乙個重要的環境變數:$gopath

(注:這個不是go安裝目錄。下面以筆者的工作目錄為示例,如果你想不一樣請把gopath替換成你的工作目錄。)

在類 unix 環境下大概這樣設定:

export gopath=/tmp/mygo

gopath允許多個目錄,當有多個目錄時,請注意分隔符,linux系統是冒號,當有多個gopath時,缺省會將go get的內容放在第乙個目錄下。

$gopath 目錄約定有三個子目錄:

gopath下的src目錄就是接下來開發程式的主要目錄,所有的原始碼都是放在這個目錄下面,那麼一般我們的做www.cppcns.com法就是乙個目錄乙個專案,例如: $gopath/src/mymath 表示mymath這個應用包或者可執行應用,這個根據package是main還是其他來決定,main的話就是可執行應用,其他的話就是應用包,這個會在後續詳細介紹package。

s 存放源**(比如:.go .c .h .s等)

pkg 編譯後生成的檔案(比如:.a)

bin 編譯後生成的可執行檔案(為了方便,可以把此目錄加入到 $path 變數中,如果有多個gopath,那麼使用$/bin新增所有的bin目錄)

我用是這個開發在設定中

其中index entire gopath我一般去掉勾選,因為我習慣每個專案單獨乙個環境,不與其他專案公用

本文標題: 解決gopath在goland中的坑

本文位址: /jiaoben/golang/369622.html

goland在web中存在的問題

官方文件中明確指出,slice 切片 的零值是 nil,在沒有明確初始化的情況下這是顯而易見的,任何 go 開發者應該都知道才對。但是對於 goland 而言,宣告並直接初始化的空 slice 和宣告不初始化 slice 是一回事。為什麼這麼說呢?如果你在 goland 中寫入以下兩句 var sl...

在goland中配置gofmt的操作

goland是jetbrains公司推出的go語言ide,是一款功能強大,使用便捷的產品。在goland中,可以通過新增乙個file watcher來在檔案發生變化的時候呼叫gofmt進行 格式化,具體方法是,點選preferences tools file watchers,點加號新增乙個go f...

Goland 匯入自定義包問題解決

今天在學習go的物件導向時,想測試go中類屬性 方法的公私有問題,在另外定義乙個包後,發現在main函式中無法匯入。在網上查了很多部落格都沒能解決問題,目錄頁照著修改了 什麼gopath也修改了,參照很多文章,他們的解決方法似乎都不太適合我。經過頭皮發麻,差點爆錘電腦後,終於綜合多篇文章解決問題!這...