【GO基礎 】 工作區和GOPATH
在過去的幾年裡,我們一起見證了Go語言的崛起,我最早用GO的時候Go的最新版本還是1.5.x 版本,那個時候也是第一次聽說Go這門語言。GO1.5版本開始,GO語言本身也開始了使用Go語言來實現Go語言本身,但那個時候的GC效能還不是很強。對於很多靜態型別語言轉過來的朋友來說體驗感還是比較差。直到1.7.x版本 開始,極速的GC讓很多Go粉拍手稱快。再到了2018年2月1.10版本釋出對GO自身的工具進行了很大的升級。
要學習一門程式語言那一定是要事先準備好了相應的開放環境才行,當然開發環境的搭建的教程我早就在以前的文章中寫過了,需要了解的朋友可以翻閱下以前的文章。如果你搭建好了環境可以通過go version 來驗證是否安裝成功。
如果沒有成功的話,你首先要驗證一下自己本機上的安裝目錄下是否可以找到go的目錄,如果存在的話那麼久需要去檢查 GOROOT GOPATH 和 GOBIN 三個環境變數。如果上述四個關鍵東西都有那麼說明你的環境是ok 的。
GO包的目錄不用多說。搜下go的下載包郵很多地方有的下載的,接下來就是三個環境變數。
GOPATH:環境變數 GOPATH 的值可以是一個目錄的路徑,也可以包含多個目錄路徑,每個目錄都代表 Go 語言的一個工作區(workspace)。這些工作區用於放置 Go 語言的原始碼檔案(source file),以及安裝(install)後的歸檔檔案(archive file,也就是以“.a”為副檔名的檔案)和可執行檔案(executable file)。
GOROOT:其實就是你GO語言的安裝目錄
GOBIN:其實就是GOPATH/bin go install 之後一些工具便於使用。比如beego的 bee工具的是用
GO語言的專案進行過程中的很多操作。例如編碼、依賴管理、構建、測試、安裝等等,一系列操作。其實都是圍繞著這幾個目錄在轉的。
例如我的
接下來我來描述一下GOPATH 下的src pkg 和 bin幾個目錄
我所使用的環境都是win10
bin 目錄下 使用go install 編譯後會將二進位制檔案安裝到這個目錄
pkg
會放一些歸檔檔案,pkg目錄會將一些編譯出來的檔案放到這個目錄比如說一些編譯的中間檔案靜態庫之類的東西。不過對於初學者來說不需要去管這個目錄,只要知道有這麼個目錄就行了,不需要多做理會,等熟悉了再回過頭看看這個目錄。
src
src就厲害了,作為我們開發來說,有百分之九十八的時間都停留在這個目錄裡。因為它是我們的原始碼存放目錄。
go的一些命令
go env 可以打印出go語言的通用環境資訊
go build 編譯程式碼,
go install 編譯並安裝程式碼。二進位制會存放於GOBIN環境下
go get 這個命令就厲害了。我當時決定一定要學好go 就是因為它了。例如我在github 上開源了一個庫。實現了一些功能。那麼通過go get 可以將包自動下載到本地並對它進行編譯,非常方便,當然。使用該指令必須安裝git 要不然它是無法工作的,其實它也就是用了git 去下載,只是方便了我們而已
-u:下載並安裝程式碼包,不論工作區中是否已存在它們。
-d:只下載程式碼包,不安裝程式碼包。
-fix:在下載程式碼包後先執行一個用於根據當前 Go 語言版本修正程式碼的工具,然後再安裝程式碼包。
-t:同時下載測試所需要的程式碼包。
-insecure:允許通過非安全的網路協議下載和安裝程式碼包。例如HTTP協議。
涓滴之水可磨損大石,不是由於他力量強大,而是由於晝夜不捨地滴墜。只有勤奮不懈地努力,才能夠獲得那些技巧。 —— 貝多芬
相關推薦
【GO基礎 】 工作區和GOPATH
在過去的幾年裡,我們一起見證了Go語言的崛起,我最早用GO的時候Go的最新版本還是1.5.x 版本,那個時候也是第一次聽說Go這門語言。GO1.5版本開始,GO語言本身也開始了使用Go語言來實現Go語言本身,但那個時候的GC效能還不是很強。對於很多靜態型別語言轉
【Go】筆記一 | 工作區和GOPATH
核心知識 GOPATH的意義在與程式碼結構分層 Go語言原始碼的組織方式 以程式碼包為基本組織單位 程式碼包與目錄一一對應 目錄有子目錄,程式碼包也有子包 程式碼包中可以任意個.go 副檔名的原始碼檔案,需要被宣告為屬於同一個程式碼包
[Go語言學習筆記] 01 工作區和GOPATH
Go語言3個環境變數: GOROOT:GO語言按照根路徑,也就是GO語言的安裝路徑。 GOPATH:若干工作區目錄的路徑。是我自己定義的工作空間。 GOBIN:GO程式生成的可執行檔案(executable file)的路徑。 工作區和GOPATH:  
Go語言核心36講筆記1——工作區和GOPATH
Go語言核心36講筆記系列是我學習《Go併發程式設計實戰》作者郝林的專欄文章——Go語言核心36講所做的筆記。 1、配置三個環境變數: GOROOT:Go的安裝目錄 GOPATH:工作空間目錄 GOBIN: 2、GOPATH 環境變數GOPATH的值可以是一個
go語言系列一之工作區和GOPATH
從今天開始我們一起來學習GO語言,一起努力,一起成長 Go 語言被設計成一門應用於搭載 Web 伺服器,儲存叢集或類似用途的巨型中央伺服器的系統程式語言。 對於高效能分散式系統領域而言,Go 語言無疑比大多數其它語言有著更高的開發效率。 它提供了海量並行的支援,這對於遊
【 js 基礎 】作用域和閉包
代碼 var 垃圾回收器 間接 undefined scrip 運行時 例子 解析 一、編譯過程 常見編譯性語言,在程序代碼執行之前會經歷三個步驟,稱為編譯。 步驟一:分詞或者詞法分析 將由字符組成的字符串分解成有意義的代碼塊,這些代碼塊被稱為詞法單元。 例子: v
【重溫基礎】1.語法和資料型別
最近開始把精力放在重新複習JavaScript的基礎知識上面,不再太追求各種花枝招展的前端框架,框架再多,適合實際專案才是最重要。 上星期在掘金髮布了幾篇文章,其中最大塊算是 【複習資料】ES6/ES7/ES8/ES9資料整理(個人整理),也是讓我好好把這些規範複習了一遍,雖然不是完全的原創,而是自己的一些複
【C#基礎】while迴圈和do-while迴圈
1.While迴圈(先判斷迴圈條件,在執行迴圈體) static void Main(string[] args) { int index = 1; int sum = 0;
【重溫基礎】5.表示式和運算子
本文是 重溫基礎 系列文章的第五篇。 今日感受:家的意義。 系列目錄: 【複習資料】ES6/ES7/ES8/ES9資料整理(個人整理) 【重溫基礎】1.語法和資料型別 【重溫基礎】2.流程控制和錯誤處理 【重溫基礎】3.迴圈和迭代 【重溫基礎】4.函式
【重溫基礎】3.迴圈和迭代
本文是 重溫基礎 系列文章的第三篇,今天想起鬼腳七的一句話:人不一定自由,但思想一定是自由的。思想沒有對和錯,也沒有高和低,只有不同。瞭解一個人可以去了解他的思想。 。 系列目錄: 【複習資料】ES6/ES7/ES8/ES9資料整理(個人整理) 【重溫基礎】1.語法和資
【C#基礎】值型別和引用型別
一、名稱空間 可以認為類是屬於名稱空間的 如果在當前專案中不存在這個類的名稱空間,需要我們手動匯入這個類所在的名稱空間 【匯入方法】(1)VS智慧提示,滑鼠點選小燈泡 &n
【Java基礎】執行緒和併發機制
前言 在Java中,執行緒是一個很關鍵的名詞,也是很高頻使用的一種資源。那麼它的概念是什麼呢,是如何定義的,用法又有哪些呢?為何說Android裡只有一個主執行緒呢,什麼是工作執行緒呢。執行緒又存在併發,併發機制的原理是什麼。這些內容有些瞭解,有些又不是很清楚,所以有必要通過一篇文章的梳理,弄清
【Java基礎】位元組流和字元流的區別
原文連結:http://blog.csdn.net/zxman660/article/details/7875799 先來看一下流的概念: 在程式中所有的資料都是以流的方式進行傳輸或儲存的,程式需要資料的時候要使用輸入流讀取資料,而當程式需要將一些資料儲存起來的時候
【計算機基礎】在0和1的世界裡來來回回
事物的正反兩面被哲學家討論了幾千年。計算機裡的0和1也照舊玩出了各種花樣。二進位制數 VS 十進位制數本小節講二進位制寫法,以及到十進位制的轉換方法,如果已熟悉這些內容可以直接跳到下一小節。我們生活在一個十進位制的世界中。10個一毛就是一塊,10個一兩就是一斤。在數學上有滿十進一或借一當十。十進位制數的基數就
轉載:【Java基礎】InputStream 、 InputStreamReader和BufferedReader
gen 結果 取字符 sys try eight string font buffer 來源:http://blog.csdn.net/zgljl2012/article/details/47267609 在Java中,上述三個類經常用於處理數據流,下面介紹一下三個類的
【linux基礎】rpm安裝程序和管理
rpm使用1.了解應用程序應用程序(app):安裝在os上完成特定功能的軟件。應用程序的類型:*.rpm(redhat分支默認軟件格式),*.deb(debian分支默認軟件格式),源代碼(通用的軟件格式,也是生成rpm和deb的基礎),其他自帶安裝程序及免安裝的軟件。用戶程序常用的目錄:/etc,/var/
【HTML基礎】表格和表單
天津 adding 文字 最小 words 常見 jpg checked 搜索引擎 本次博客的主要內容如下: meta和link 表格 表單 meta和link meta meta的屬性有兩種:name和http-equiv。 name屬性主要用於描述
【 js 基礎 】【 源碼學習 】柯裏化和箭頭函數
新的 執行 pos inner 自己的 文件中 柯裏化 clas 而已 最近在看 redux 的源碼,代碼結構很簡單,主要就是6個文件,其中 index.js 負責將剩余5個文件中定義的方法 export 出來,其他5個文件各自負責一個方法的實現。 大部分代碼比較簡單,很
【PHP基礎】cookies和session
lex inpu form display ews action port 分配 有一個 1.Cookies cookie 常用於識別用戶。cookie 是服務器留在用戶計算機中的小文件。每當相同的計算機通過瀏覽器請求頁面時,它同時會發送 cookie。通過 PHP,
【轉載】 棧區和堆區記憶體分配的區別
本文轉自 http://www.jb51.net/article/40513.htm 一直以來總是對這個問題的認識比較朦朧,我相信很多朋友也是這樣的,總是聽到記憶體一會在棧上分配,一會又在堆上分配,那麼它們之間到底是怎麼的區別呢?為了說明這個問題,我們先來看一下記憶體內部的組織情況。 從