Go程序開發---Go環境配置:CentOS6.5+Go1.8標準包安裝

1.Go安裝

1.1Go的三種安裝方式

? ? Go有多種安裝方式,可以選擇自己習慣的方式進行,這里介紹三種安裝方式:

? ? ? ? 1)Go源碼安裝

? ? ? ? 2)Go標準包安裝

? ? ? ? 3)第三方工具安裝

? ? 這里主要介紹下Go標準包在CentOS6.5系統中的安裝方式

1.2Go標準包安裝

? ? 1)首先需要具備一個CentOS6.5的操作系統

? ? 2)下載安裝包,此處使用1.8的64位版本go1.8beta1.linux-amd64.tar.gz,將其解壓到/usr/local目錄

?

? ? 3)配置環境變量,在/etc/profile文件末尾設置,配置需要重啟后生效

? ? 4)運行go命令,如果出現usage信息,說明安裝配置成功

1.3Go配置路徑說明

? ? 1)GOROOT

? ? ? ??golang安裝路徑

? ??2)GOPATH

? ? ? ??Go工作環境中常常用到的一個很重要的環境變量(這種設計類似java)。具體用途:go命令常常需要用到的,如go run,go install, go get等。允許設置多個路徑,和各個系統環境多路徑設置一樣,windows用“;”,Linux(mac)用“:”分隔。

? ? 3)GOBIN

? ? ? ??go install編譯存放路徑。不允許設置多個路徑。可以為空。為空時則遵循“約定優于配置”原則,可執行文件放在各自GOPATH目錄的bin文件夾中(前提是:package main的main函數文件不能直接放到GOPATH的src下面。

? ? 4)GOPATH目錄結構

?

? ? ? ? goWorkSpace // (goWorkSpace為GOPATH目錄)
? ? ? ? ? ? -- bin // golang編譯可執行文件存放路徑,可自動生成。
? ? ? ? ? ? -- pkg // golang編譯的.a中間文件存放路徑,可自動生成。
? ? ? ? ? ? -- src // 源碼路徑。按照golang默認約定,go run,go install等命令的當前工作路徑(即在此路徑下執行上述命令)。

?

? ? 5)Go目錄結構1? ? ? ?

? ? ? ? project1 // (project1添加到GOPATH目錄了)
? ? ? ? ? ? -- bin
? ? ? ? ? ? -- pkg
? ? ? ? ? ? -- src
? ? ? ? ? ? ? ? -- models // package
? ? ? ? ? ? ? ? -- controllers // package
? ? ? ? ? ? ? ? -- main.go // package main[注意,本文所有main.go均指包main的入口函數main所在文件]

? ? 6)Go目錄結構2

? ? ? ? goWorkSpace // goWorkSpace為GOPATH目錄
? ? ? ? ? ? -- bin
? ? ? ? ? ? ? ? -- myApp1 // 編譯生成
? ? ? ? ? ? ? ? -- myApp2 // 編譯生成
? ? ? ? ? ? ? ? -- myApp3 // 編譯生成
? ? ? ? ? ??-- pkg
? ? ? ? ? ??-- src
? ? ? ? ? ? ? ??-- common 1
? ? ? ? ? ? ? ??-- common 2
? ? ? ? ? ? ? ??-- common utils ...
? ? ? ? ? ? ? ??-- myApp1 // project1
? ? ? ? ? ? ? ? ? ? -- models
? ? ? ? ? ? ? ? ? ??-- controllers
? ? ? ? ? ? ? ? ? ??-- others
? ? ? ? ? ? ? ? ? ??-- main.go
? ? ? ? ? ? ? ??-- myApp2 // project2
? ? ? ? ? ? ? ? ? ??-- models
? ? ? ? ? ? ? ? ? ??-- controllers
? ? ? ? ? ? ? ? ? ??-- others
? ? ? ? ? ? ? ? ? ??-- main.go
? ? ? ? ? ? ? ??-- myApp3 // project3
? ? ? ? ? ? ? ? ? ??-- models
? ? ? ? ? ? ? ? ? ??-- controllers
? ? ? ? ? ? ? ? ? ??-- others
? ? ? ? ? ? ? ? ? ??-- main.go

? ? 7)Go目錄結構3? ??

? ? ? ? dir
? ? ? ? ? ? -- goWorkSpace1 // 主要是為了區分自己的鼓搗的一些東西和工作上的項目
? ? ? ? ? ??-- goWorkSpace2
? ? ? ? ? ? ? ? -- bin
? ? ? ? ? ? ? ??-- pkg
? ? ? ? ? ? ? ??-- src
? ? ? ? ? ? ? ? ? ? -- myApp1
? ? ? ? ? ? ? ? ? ? ? ? -- .git
? ? ? ? ? ? ? ? ? ? ? ??-- models
? ? ? ? ? ? ? ? ? ? ? ??-- controllers
? ? ? ? ? ? ? ? ? ? ? ??-- main.go
? ? ? ? ? ? ? ? ? ? -- myApp2
? ? ? ? ? ? ? ? ? ? ? ??-- .git
? ? ? ? ? ? ? ? ? ? ? ??-- models
? ? ? ? ? ? ? ? ? ? ? ??-- controllers
? ? ? ? ? ? ? ? ? ? ? ??-- main.go
? ? ? ? ? ? ? ? ? ? -- myApp3
? ? ? ? ? ? ? ? ? ? ? ??-- .git
? ? ? ? ? ? ? ? ? ? ? ??-- models
? ? ? ? ? ? ? ? ? ? ? ??-- controllers
? ? ? ? ? ? ? ? ? ? ? ??-- main.go

2.Go開發工具

2.1LiteIDE

2.1.1安裝git

? ? 為了通過git獲取相關的工具包(gocode),需要連接網絡安裝,yum install git,安裝完成后,可以通過git --version查看到版本號說明已經安裝成功

2.1.2安裝gocode(如果LiteIDE包含該工具,就不需要安裝)

? ? gocode是Go編程語言的自動完成守護進程,下載gocode,go get github.com/nsf/gocode,安裝gocode,go install?github.com/nsf/gocode,安裝完成后可以在GOBIN目錄下看到gocode執行程序

2.1.3下載和解壓LiteIDE

? ? 在解壓后的bin目錄下,可以看到相關的工具

2.1.4設置編輯環境

? ? 1)工具欄中的環境配置中選擇linux64

?

? ? 2)在查看--選項--LiteEnv中雙擊編輯linux64.env,將其中的GOROOT進行修改和保存

? ? 3)Go語言的工具鏈使用GOPATH設置,是Go語言開發的項目路徑列表,在命令行中輸入(在LiteIDE中也可以Ctrl+,直接輸入)go help gopath快速查看GOPATH文檔。在LiteIDE中可以方便的查看和設置GOPATH。通過菜單-查看-GOPATH設置,可以查看系統中已存在的GOPATH列表, 同時可根據需要添加項目目錄到自定義GOPATH列表中。

2.1.5使用體驗

? ? 1)新建項目,選擇上一步添加的GOPATH,模板為Go1 Command Project

?

? ? 2)編輯源代碼,添加幾行代碼,包括變量聲明、初始化及賦值,用來驗證調試是否生效

?

? ? 3)設置編譯選項及編譯,編譯->編譯配置,設置編譯參數。在BUILDARGS添加-gcflags "-N -l",目的是去掉編譯優化,方便調試。

? ? 4)Ctrl+B構建項目

? ? 5)調試程序,按F5啟動調試,程序在main函數處停止,通過F10單步調試

2.2 Vim

2.2.1安裝Vim

? ? 如果安裝的操作系統中有Vim,可以跳過此環節,如果沒有可以通過以下命令安裝

? ? ?yum install vim*

? ? ?會看到vim-enhanced這個包,然后運行yum install vim-enhanced ?

2.2.2安裝git

? ? 可以參考前面的安裝方法

2.2.3安裝Vundle.vim

? ??Vim-go是當前使用最為廣泛的用于搭建Golang開發環境的vim插件,這里我同樣使用vim-go作為核心和基礎進行環境搭建的。vim-go利 用開源Vim插件管理器安裝,gmarik/Vundle.vim是目前被推薦次數更多的Vim插件管理器,超過了pathogen。這里我們 就用vundle來作為Vim的插件管理工具。

? ? Vundle.vim的安裝步驟如下:? ?

? ? mkdir ~/.vim/bundle?

? ??git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim(根據網絡狀態速度不一樣,如果失敗可以多試幾次)

? ? 找到vimrc,可以通過vim中輸入”:version“命令查看到vimrc位置,在文件頂部添加有關Vundle.vim的配置:

? ? set nocompatible " be iMproved, required
? ? filetype off " required

? ? " set the runtime path to include Vundle and initialize
? ? set rtp+=~/.vim/bundle/Vundle.vim
? ? call vundle#begin()

? ? " let Vundle manage Vundle, required
? ? Plugin 'gmarik/Vundle.vim'

? ? " All of your Plugins must be added before the following line
? ? call vundle#end() " required
? ? filetype plugin indent on " required

2.2.4安裝Vim-go

? ? 編輯vimrc,在vundle#begin和vundle#end間增加一行:

? ? Plugin 'fatih/vim-go'

? ? 在Vim內執行PluginInstall? ??

? ? 編輯~/.vimrc,在vundle#begin和vundle#end間增加一行:

? ? Plugin 'fatih/vim-go'Vundle.vim會在左側打開一個Vundle Installer Preview子窗口,窗口下方會提示:“Processing 'fatih/vim-go'”,待安裝完畢后,提示信息變 成“Done!”。又是網絡不行的話會失敗,重試多次會成功

? ? 這時,我們可以看到.vim/bundle下多了一個vim-go文件夾:

? ? $ ls .vim/bundle/
? ? vim-go/ ? ? Vundle.vim/

2.2.5安裝go.tools Binaries

? ??vim-go安裝說明中提到所有必要的binary需要先安裝好,比如gocode、godef、goimports等。?

? ? 通過:GoInstallBinaries,這些vim-go依賴的二進制工具將會自動被下載,并被安裝到$GOBIN下或$GOPATH/bin下。(這個工具需要依賴git或hg,需要提前安裝到你的OS中。)

?

? ? :GoInstallBinaries的執行是交互式的,你需要回車確認:

? ??不過這些代碼多在code.google.com上托管,因此由于眾所周知的原因,vim-go的自動安裝很可能以失敗告終,這樣就需要你根據上 面日志中提到的各個工具的源碼地址逐一去下載并本地安裝。無法搭梯子的,可以通過http://gopm.io 下載相關包。

?

2.2.6其他插件的安裝

? ? ?可以參考http://tonybai.com/2014/11/07/golang-development-environment-for-vim/中的安裝方法

2.3eclipse

2.3.1安裝eclipse

? ? 安裝前需要先安裝jdk,并配置環境變量

?

? ? 安裝eclipse,直接解壓到指定目錄,這里使用/usr/local

2.3.2 安裝goclipse和CDT

? ??安裝方式:使用eclipse的軟件升級功能完成,打開Eclipse,“help”->"install new softwear ",隨后點“add”按鈕,在“location”里面輸入“http://goclipse.github.io/releases/”后,點“OK”按鈕,隨后操作就和升級其它軟件一樣了,這個插件安裝完畢后,我們就可以在Eclipse的“window”->"preferences"的左側看到“go”的項目了,這說明我們已經成功按照了goClipse和CDT!

?

2.3.3配置goclipse和tools

? ? 這里的tools是我本地安裝好工具所在目錄

2.3.4創建項目和調試

? ? 項目屬性:

? ? 調試效果

?

轉載于:https://www.cnblogs.com/auh2010006/p/6343231.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396870.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396870.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396870.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python矩陣乘法_魚書——第一章 Python入門

one 第一章1.1 Python是什么Python是一個簡單、易讀、易記的編程語言,而且是開源的,可以免費地自由使用。Python可以用類似英語的語法編寫程序,編譯起來也不費力,因此我們可以很輕松地使用Python。特別是對首次接觸編程的人士來說…

深入淺出面向對象分析與設計

深入淺出面向對象分析與設計書籍 下載位置:http://pan.baidu.com/s/1o7gmmuu轉載于:https://www.cnblogs.com/wlming/p/5160140.html

[SHOI2002]百事世界杯之旅

題目:“……在2002年6月之前購買的百事任何飲料的瓶蓋上都會有一個百事球星的名字。只要湊齊所有百事球星的名字,就可參加百事世界杯之旅的抽獎活動,獲得球星背包,隨聲聽,更克赴日韓觀看世界杯。還不趕快行動&#xff…

Oracle adviser,Oracle10g SQL tune adviser

Oracle10g SQL tune adviser簡單介紹本文簡單介紹下SQL Tuning Adviser的配置使用方法和一些相關知識點,如果了解SQL Tuning Adviser詳細信息,參看Oracle聯機文檔。本文對分析結果沒有詳細分析。一、自動SQL Tuning簡單介紹:1、優化模式&…

考托福

todo 香港的博士 轉載于:https://www.cnblogs.com/dunfentiao/p/5164028.html

keepalived vip ping不通_【干貨分享】OpenStack LVS負載均衡為什么不通?

背景介紹OpenStack環境Neutron 的安全組會向虛擬機默認添加 anti-spoof 的規則,將保證虛擬機只能發出/接收以本機Port為原地址或目的地址(IP、MAC)的流量,提高了云的安全性。但是LVS等需要綁定VIP的場景,默認流量是被攔截的。需要…

Docker安裝ssh,supervisor等基礎工具

2019獨角獸企業重金招聘Python工程師標準>>> Docker安裝ssh,supervisor等基礎工具 需要提前下載好官方的ubuntu鏡像,我這里使用的是ubuntu:14.04版本,這里安裝了一些基礎的工具ssh,curl,wget,vi…

中南大學 oracle試卷,數據庫原理期末復習(中南大學)數據庫原理、技術及應用2.ppt...

2014 春季 信息11,12 DB P,T&A-張祖平 數據庫原理、技術及應用 張祖平/Zhang Zuping 電子信息工程系 School of Information Science and Engineering,Central South University , zpzhangmail.csu.edu.cn 本章小結 關系模型中的相關概念 關系(集合),性質&#…

Pandas時間差(Timedelta)

時間差(Timedelta)是時間上的差異,以不同的單位來表示。例如:日,小時,分鐘,秒。它們可以是正值,也可以是負值。可以使用各種參數創建Timedelta對象,如下所示 - 字符串 通過傳遞字符串&#xff0…

nginx集群_windows環境下搭建簡單Nginx+Tomcat集群

通俗點將,負載均衡就是因為訪問流量太大,導致項目訪問不流暢、甚至宕掉,所以通過一種分流的方式來緩解這種情況。一、 工具nginx-1.8.0apache-tomcat-6.0.33二、 目標實現高性能負載均衡的Tomcat集群:三、 步驟1、首先下載Nginx&a…

顏色傳感器TCS230及顏色識別電路(轉)

摘要 TCS230是美國TAOS公司生產的一種可編程彩色光到頻率的傳感器。該傳感器具有分辨率高、可編程的顏色選擇與輸出定標、單電源供電等特點;輸出為數字量,可直接與微處理器連接。文中主要介紹TCS230的原理和應用,以及色光和白平衡的知識&…

自定義對話框 提示:Unable to add window token null is not for an application

這是因為在new Dialog(context);的時候傳入的context是通過getApplicationContext()獲得的,這樣就會報錯。 把context的獲得方式改為MainActivity.this就好了。 轉載于:https://www.cnblogs.com/qlong8807/p/5167560.html

[51Nod 1218] 最長遞增子序列 V2 (LIS)

傳送門 Description 數組A包含N個整數。設S為A的子序列且S中的元素是遞增的,則S為A的遞增子序列。如果S的長度是所有遞增子序列中最長的,則稱S為A的最長遞增子序列(LIS)。A的LIS可能有很多個。例如A為:1 3 2 0 4&#…

linux如何全局搜索目錄,Linux 全目錄全文搜索

文件內容搜索1grep -r root /home/ray/dev/media/wyquery/*通過這種方法來尋找數據庫配置文件的目錄其他$ grep “被查找的字符串” 文件名例子:在當前目錄里第一級文件夾中尋找包含指定字符串的.in文件grep “thermcontact” */*.in從文件內容查找與正則表達式匹配…

mysql命令行導入和導出數據

首先打開命令窗口,輸入命令:mysql -h localhost -u selffabu -p 連接成功后,進行下面的操作 MySQL中導出CSV格式數據的SQL語句樣本如下: Sql代碼select * from test_info into outfile /tmp/test.csv fields terminated by , optionally enclosed by " esc…

Python 拷貝對象(深拷貝deepcopy與淺拷貝copy)

http://www.jb51.net/article/15714.htm 1. copy.copy 淺拷貝 只拷貝父對象,不會拷貝對象的內部的子對象。2. copy.deepcopy 深拷貝 拷貝對象及其子對象 一個很好的例子: 1 import copy2 a [1, 2, 3, 4, [a, b]] #原始對象3 4 b a #賦值&#xff0c…

7.組件連線(貝塞爾曲線)--從零起步實現基于Html5的WEB設計器Jquery插件(含源碼)...

上節講到如何創建組件,清除設計器視圖,以及設計視圖的持久化和恢復,本節將重點講如何實現組件間的連線,前面章節有提到為了方便從持久化文件中恢復,組件和連線是分別存放的:nodes和lines對象,兩…

linux bind命令,LINUX命令bind-系統管理-顯示或設置鍵盤按鍵與其相關的功能

bind命令 用于顯示和設置命令行的鍵盤序列綁定功能。通過這一命令,可以提高命令行中操作效率。您可以利用bind命令了解有哪些按鍵組合與其功能,也可以自行指定要用哪些按鍵組合。語法bind(選項)選項-d:顯示按鍵配置的內容;-f&…

定位排查工作流的計算結果數據量不符合預期的方法

近期有發現一些用戶在咨詢,為什么數據從數據源出來后,經過了一些計算,結果不符合預期了。最常見的是說,為什么我的數據在Mysql里有xx條,怎么到MaxCompute里算了下結果變了。因為這是兩個不同的系統,我們又沒…

canvas 插件_基于canvas的JavaScript 二維碼生成工具——QRCanvas

介紹在我們日常的開發中,特別是在現代的社會環境下,二維碼的應用可謂是豐富多彩,各種各樣讓人眼花繚亂的二維碼,可見二維碼已經滲透進我們生活的方方面面,也可以說目二維碼確確實實方便了我們的生活。因為作為開發人員…