1. 程式人生 > >golang在linux環境下自定義包(一招解決問題)

golang在linux環境下自定義包(一招解決問題)

由於是go語言新手,有些簡單的問題處理起來有點困難。現在從go安裝到執行詳細地說起

關於go語言在linux環境下自定義包的問題困擾了我好大一會。

下面我就從前往後詳細地說一下解決方法,一招解決問題。

(I)linux下解決,從go安裝開始說起

命令安裝比直接在先下載golang安裝包解壓安裝更快更方便,當然命令直接安裝的版本只有1.6,現在很多開源專案都支援更高的版本了,所以如果我們需要更高的版本,可以現在go官網上下載,手動安裝,這裡也就不再詳細敘述了。

(1)下載安裝go

$sudo apt-get install golang

(2)檢視一下是否安裝成功,顯示如下證明安裝成功

 (3)配置GOROOT和GOPATH,GROOT是go的安裝的位置,GOPATH是開發工程存放的位置(也就是我們常說的workspace)。

關於GOPATH的設定方式,網上有兩種設定方式,推薦第二種方式安裝。分別如下:

單個使用者配置:一種是在 ~/.bashrc檔案末尾加上如下環境變數

$ vim ~/.bashrc

 然後將開發工程的目錄新增到裡面

然後重新載入環境變數到記憶體

$source ~/.bashrc

 多使用者配置(推薦):另外一種方法是在/etc/profile檔案中新增

vim /etc/profile # 檔案末尾新增以下內容

 

重新載入 profile 檔案,載入環境變數到記憶體

$source /etc/profile

 檢視go版本

$go version

 

(II) 自定義包使用

自定義包使用,是在剛才的配置正確為前提下使用和處理的。

這裡也有兩種方法實現,看下下面的程式碼就知道了,這裡參考博文https://blog.csdn.net/u010164190/article/details/80830941

1.demo.go程式碼
package main
//方式1:./pac為當前目錄路徑
import ("./pac")
 
//方式2:將pac.go拷貝到/usr/local/Cellar/go/1.8.3/libexec/src/pac系統目錄下
//import ("pac")
 
func main() {
   pack.Printt("Hello")
}
 
2.在同級目錄下建立pac目錄,在pac目錄下建立pac.go
package pack
import ("fmt")
func Printt(x string) {
	fmt.Printf(x + " Go World.\n")
}
 
3.測試執行
# go run demo.go

上面程式碼的重點在於兩處:

(1)一個是demo.go和pack包在同一個資料夾下,然後在demo.go中呼叫pack的時候是import("./pac"),注意在import的時候是“./pac”而不是“pac”,pac是不行的,我嘗試過。之前一直使用錯誤的地方也就在於此。

當然我們習慣性地,在工程下建立三個目錄

其中src下存放原始碼,bin下存放編譯的檔案。

案例展示:下面就是我寫的一個main.go檔案,想呼叫gpool包

 

(2)另一個方法是,找到go的安裝包,新增自己建立的包(這個不常用,也不是根本解決辦法倒是真的,不建議這樣使用,但是還是在這裡說一下吧)。一般使用命令安裝go的時候都是安裝在/usr/local,或者/usr/lib中,我的就是在/usr/lib中,如下圖所示,

找到繼續展開找到src資料夾,然後將建立的包放到src下面就行了。當然不推薦這種做法啦

(III)關於windows下使用goland使用自定義包的問題

請參考我的另外一篇文章,裡面說得很清晰了。博文連結:https://blog.csdn.net/Homewm/article/details/85208680

純手工打,不喜勿噴,喜歡點個讚唄。

參考連結:

https://www.jianshu.com/p/c45f8cdca214

https://blog.csdn.net/u010164190/article/details/80830941

https://www.cnblogs.com/tinywan/p/6928300.html

https://blog.csdn.net/qq_15437667/article/details/80482035