溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何搭建go語言開發(fā)環(huán)境

發(fā)布時(shí)間:2020-06-06 11:00:52 來源:億速云 閱讀:281 作者:Leah 欄目:編程語言

這篇文章主要為大家分享搭建go語言開發(fā)環(huán)境的方法。文中還介紹了搭建golang開發(fā)環(huán)境技巧和golang版本的選擇,希望大家通過這篇文章能有所收獲。

搭建golang環(huán)境

1.到golang下載地址下載對(duì)應(yīng)環(huán)境的安裝包或者源碼,若是Linux環(huán)境的話,將源碼包下載解壓之后,放至/usr/local/(實(shí)際上放至合適位置即可,只要把它添加進(jìn)PATH就行),如:

export PATH=$PATH:/usr/local/go/bin

2.配置GOPATH、GOROOT,這里可能需要解釋一下,對(duì)于新手來說,肯定不熟悉這兩個(gè)環(huán)境變量的意義。

GOROOT:golang的安裝目錄。

GOPATH:go的工作空間,在GOPATH下會(huì)有三個(gè)目錄:src,bin,pkg。

src:存放源碼(在不設(shè)置go mod的情況下,go get的包放至這里,你自己的項(xiàng)目源碼也可以放在這里);

bin:編譯后的可執(zhí)行文件放置的位置,如果在你項(xiàng)目go install,生成的可執(zhí)行文件會(huì)放在此處;

pkg:存放編譯時(shí)產(chǎn)生的文件(.a文件)并根據(jù)平臺(tái)進(jìn)行歸檔,比如,windows64下產(chǎn)生的文件放在windows_amd64目錄下,通常情況下,我們不會(huì)太關(guān)心這些文件。不過在go module包管理方式下,pkg目錄變得受人關(guān)注了, 依賴的第三方包被下載到了$GOPATH/pkg/mod路徑下,而不是src文件夾。

3.下載一個(gè)合適的IDE,我個(gè)人比較喜歡用Goland,選擇一個(gè)適合自己的IDE很重要,也有人喜歡vs code,這沒有關(guān)系,只要自己使用順手就行。

4.簡(jiǎn)單寫段代碼測(cè)試一下,go的安裝情況如何,在$GOPATH/src下創(chuàng)建一個(gè)目錄作為測(cè)試項(xiàng)目,創(chuàng)建一個(gè)main.go文件,代碼如下:

package main

import (
    "fmt"
)

func main() {
    fmt.Print("Hello world!")
}

接著在項(xiàng)目根目錄下go run main.go或者像我一樣在IDE里面直接點(diǎn)擊一下運(yùn)行按鈕即可。可以說搭建一個(gè)golang環(huán)境至此已經(jīng)結(jié)束,就這么簡(jiǎn)單?就這么簡(jiǎn)單,但還有其他事情可以繼續(xù)說下

實(shí)用的golang開發(fā)環(huán)境技巧

1.利用虛擬機(jī)共享目錄來應(yīng)對(duì)不同環(huán)境

有這樣一個(gè)場(chǎng)景:有個(gè)go項(xiàng)目,它的打包方式是make,但是我們想在Windows下編寫代碼,在Windows下正常情況下沒有make工具,而Linux有。當(dāng)然有人會(huì)提出,那就在Windows下安裝相應(yīng)的make工具就好了,的確如此,這樣就解決問題了。我接下來所要講的技巧權(quán)當(dāng)做一種另外的解題思路。
首先,安裝一個(gè)Linux虛擬機(jī),創(chuàng)建好之后設(shè)置共享目錄

在我的Windows系統(tǒng)的D盤下有一個(gè)share目錄,我將它共享到了虛擬機(jī)里面,并在Linux中為它創(chuàng)建了一個(gè)軟連接,這樣方便我查看和修改文件。share目錄下的go目錄即為我的GOPATH,我將虛擬機(jī)中的GOPATH設(shè)置成了同一個(gè)路徑,這樣子就可以在兩個(gè)系統(tǒng)中共享同一份下載的源碼。好了,現(xiàn)在我們可以在Windows下打代碼,在Linux下編譯了(有個(gè)Linux環(huán)境莫名的有安全感)。

2.利用docker和docker-compose進(jìn)行開發(fā)

能夠?qū)懸欢魏?jiǎn)單的打印“hello world”的代碼就證明你的開發(fā)環(huán)境搭建完畢了嗎?很多時(shí)候,初學(xué)者看到的其他golang入門文章到此就結(jié)束了,但我覺得還有些可以繼續(xù)進(jìn)步的地方。很多項(xiàng)目會(huì)用到mysql、reids等,下面我會(huì)用docker和docker-compose為我們的項(xiàng)目提供支持。我的操作思路是在虛擬機(jī)安裝docker和docker-compose,并安裝mysql等,然后將端口轉(zhuǎn)發(fā)出來。
① 在虛擬機(jī)中安裝docker和docker-compose;
② 將創(chuàng)建工作目錄,在該目錄下創(chuàng)建一個(gè)docker-compose.yaml,接著運(yùn)行如下:

version: '3'
services:
  mysql:
    container_name: mysql
    image: mysql:5.6
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
      MYSQL_ROOT_HOST: "%"
    volumes:
      - "./data:/var/lib/mysql"           # 掛載數(shù)據(jù)目錄
      - "./config:/etc/mysql/conf.d"      # 掛載配置文件目錄
$ docker-compose up -d

③ 將對(duì)應(yīng)端口轉(zhuǎn)發(fā)出來:

④ 在Windows下用熟手的工具去操作,可以用navicat等工具,我個(gè)人比較喜歡都在IDE里執(zhí)行:

如此一來,我們就可以利用docker和docker-compose創(chuàng)建一些我們需要的組件,并且在Windows和Linux下都連接成功。這么做有一些好處,我們可以在Windows下盡情的編碼和測(cè)試,在Linux下去做編譯和打包工作。不過,我并沒有很詳細(xì)地將這其中的操作過程寫出來,這篇文章里主要提供一些思路,如有人有興趣,我以后會(huì)寫一篇跟工具有關(guān)的文章。

3.golang版本的選擇

我在看官網(wǎng)的文檔時(shí),發(fā)現(xiàn)了一個(gè)有趣的東西,貌似平時(shí)沒有很多人去關(guān)注。

Installing extra Go versions

It may be useful to have multiple Go versions installed on the same machine, for example, to ensure that a package's tests pass on multiple Go versions. Once you have one Go version installed, you can install another (such as 1.10.7) as follows:

$ go get golang.org/dl/go1.10.7
$ go1.10.7 download

The newly downloaded version can be used like go:

$ go1.10.7 version
go version go1.10.7 linux/amd64

All Go versions available via this method are listed on the download page. You can find where each of these extra Go versions is installed by looking at its GOROOT; for example, go1.10.7 env GOROOT. To uninstall a downloaded version, just remove its GOROOT directory and the goX.Y.Z binary.

這段文本是在說你可以通過go get的方式去安裝其他的go版本,這種方式也比較簡(jiǎn)單。但應(yīng)該很少人會(huì)有這樣的需求了吧,因?yàn)橐话銇碇v,go的版本安裝最新的就行了,go的兼容做得很好,不會(huì)因?yàn)槟愕拇a是幾年之前寫的就運(yùn)行不起來。

看完這篇文章,你們學(xué)會(huì)搭建go語言開發(fā)環(huán)境的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI