當前位置:首頁 » 編程軟體 » go源碼怎麼編譯

go源碼怎麼編譯

發布時間: 2023-05-13 12:13:10

A. 如何編譯armlinux的go

Golang也就是Go語言,現在已經發行到1.4.1版本了,語言特性優越性和背後Google強大靠山什麼的就不多說了。Golang的官方提供了多個平台上的二進制安裝包,遺憾的是並非沒有發布ARM平台的二進制安裝包。ARM平台沒辦法直接從官網下載二進制安裝包來安裝,好在Golang是支持多平台並且開源的語言,因此可以通過直接在ARM平台上編譯源代碼來安裝。整個過程主要包括編譯工具配置、獲取Golang源代碼、設置Golang編譯環境變數、編譯、配置Golang行環境變數等步驟。

註:本文選用樹莓派做測試,因為樹莓派是基於ARM平台的。

1、編譯工具配置

據說下個版本的golang編譯工具要使用golang自己來寫,但目前還是使用C編譯工具的。因此,首先要配置好C編譯工具:

1.1在Ubuntu或Debian平台上可以使用sudoapt-getinstallgcclibc6-dev命令安裝,樹莓派的RaspBian系統是基於Debian修改的,所以可以使用這種方法安裝。

1.2在RedHat或CentOS6平台上可以使用sudoyuminstallgcclibc-devel命令安裝。

安裝完成後可以輸入gcc--version命令驗證是否成功安裝。

2、獲取golang源代碼

2.1直接從官網下載源代碼壓縮包。

golang官網提供golang的源代碼壓縮包,可以直接下載,最新的1.4.1版本源代碼鏈接:/golang/go1.4.1.src.tar.gz

2.2使用git工具獲取。

golang使用git版本管理工具,也可以使用git獲取golang源代碼。推薦使用這個方法,因為以後可以隨時獲取最新的golang源代碼。

2.2.1首先確認ARM平台上已經安裝了git工具,可以使用git--version命令確認。一般linux平台都安裝了git,沒有的話可以自行安裝,不同平台的安裝方法可以參考:download/linux

2.2.2克隆遠程golang的git倉庫到本地

在終端cd到你想要安裝golang的目錄,確保該目錄下沒有名為go的目錄。然後以下命令獲取代碼倉庫:

gitclone/go

大陸地區可能會獲取失敗,在不翻牆的情況下我試了幾次都沒成功,原因大家都懂的。好在google已經將golang也託管到github上面,所以也可以通過下面命令獲取:

gitclone/golang/go.git

視網路情況,下載可能需要不少時間。我2M的帶寬花了將近兩個小時才下載完,雖然整個項目不過幾十兆==

下載完成後,可以看到目錄下多了一個go目錄,裡面即為golang的源代碼,在終端上執行cdgo命令進入該目錄。

執行下面命令檢出go1.4.1版本的源代碼,因為現在汪敏指已經有新的代碼提交上去了,最新的代碼可能不是最穩定的:

gitcheckoutgo1.4.1

至此,最新1.4.1發行版的源代碼獲取完畢

3、設置golang的編譯環境變數

主要有GOROOT、GOOS、GOARCH、GOARM四個環境變數需要設置,先解釋四個環境變數的意義。

3.1GOROOT

主要代表golang樹結構目錄的路徑,也就是上面git檢出的go目錄。一般可以不用設置這個環境變數,因為編譯的時候默認會以go目錄下src子目錄中的all.bash腳本困配運行時的父目錄作為GOROOT的值。為了保險起見,可以直接設拿芹置為go目錄的路徑。

3.2GOOS和GOARCH

分別代表編譯的目標系統和平台,可選值如下:

GOOSGOARCH

darwin386

darwinamd64

dragonfly386

dragonflyamd64

freebsd386

freebsdamd64

freebsdarm

linux386

linuxamd64

linuxarm

netbsd386

netbsdamd64

netbsdarm

openbsd386

openbsdamd64

plan9386

plan9amd64

solarisamd64

windows386

windowsamd64

需要注意的是這兩個值代表的是目標系統和平台,而不是編譯源代碼的系統和平台。樹莓派的RaspBian是linux系統,所以這些GOOS設置為linux,GOARCH設置為arm。

3.3GOARM

表示使用的浮點運算協處理器版本號,只對arm平台有用,可選值有5,6,7。如果是在目標平台上編譯源代碼,這個值可以不設置,它會自動判斷需要使用哪一個版本。

總結下來,在樹莓派上設置golang的編譯環境變數,可編輯$HOME/.bashrc文件,在末尾添加下面內容:

exportGOROOT=你的go目錄路徑

exportGOOS=linux

exportGOARCH=arm

編輯完後保存,執行source~/.bashrc命令讓修改生效。

4、編譯源代碼

環境變數配置完成自後就可以開始編譯源代碼。在go目錄下的src子目錄中,主要有all.bash和make.bash兩個腳本(另外還有兩個all.bat和make.bat腳本適用於window平台)。編譯實際上就是執行其中一個腳本,兩者的區別在於all.bash在編譯完成後還會執行一些測試套件。如果希望只編譯不測試,可以運行make.bash腳本。使用cd命令進入go下src目錄,執行./all.bash或者./make.bash命令即可開始編譯。由於硬體情況不同,編譯耗費的時間不同。在我的B型樹莓派編譯過程花費了將近半個小時,編譯完成後執行的測試套件又花費了差不多一個小時,總共花費了一個半小時左右。

5、配置golang運行環境變數

編譯完成後,go目錄下會生成bin目錄,裡面就是go的運行腳本。為了以後使用方法,可以將這個bin路徑添加到PATH環境變數中。同樣編輯~/.bashrc文件,因為前面設置過GOROOT環境變數指向go目錄了,所以只需要在末尾加上

exportPATH=$PATH:$GOROOT/bin

保存後同樣執行source~/.bashrc命令讓環境變數生效。

至此,golang源代碼編譯安裝成功。執行goversion應該就能看到當前golang的版本信息,表示編譯安裝成功。


B. Go 是怎麼使用 Go 來編譯自身的

  1. Go是一個圖靈完備的語言

  2. 任何圖靈完備的語言理論上都可以用來編譯自身。比如c/c++, java, vb, php等等都可以。

至於怎麼編譯自身的:

  1. 用其它語言比如c++實現一個[Go語言編譯器-1]

  2. 用Go語言寫一個[Go語言編譯器-2]

  3. 用這個c++實現的[Go語言編譯器-1]編譯第2步裡面說的Go語言寫的[Go語言編譯器-2]

  4. 用第3步得到的[Go語言編譯器-2],再編譯一次第2步裡面說的[Go語言編譯器-2]的源碼

  5. OK,現在有一個Go語言實現的編譯器了,最開始那個c++寫的編譯器沒用了,可以扔掉不要了。以後就不停的優化使用這個Go語言實現的自身的編譯器就行了。

C. 如何配置go語言開發環境

1.1 Go 安裝

Go的三種安裝方式

Go有多種安裝方式,你可以選擇自己喜歡的。這里我們介紹三種最常見的安裝方式:

Go源碼安裝:這是一種標準的軟體安裝方式。對於經常使用Unix類系統的用戶,尤其對於開發者來說,從源碼安裝可以自己定製。
Go標准包安裝:Go提供了方便的安裝包,支持Windows、Linux、Mac等系統。這種方式適合快速安裝,可根據自己的系統位數下載好相應的安裝包,一路next就可以輕松安裝了。**推薦這種方式**
第三方工具安裝:目前有很多方便的第三方軟體包工具,例如Ubuntu的apt-get、Mac的homebrew等。這種安裝方式適合那些熟悉相應系統的用戶。

最後,如果你想在同一個系統中安裝多個版本的Go,你可以參考第三方工具GVM,這是目前在這方面做得最好的工具,除非你知道怎麼處理。

Go源碼安裝

在Go的源代碼中,有些部分是用Plan 9 C和AT&T匯編寫的,因此假如你要想從源碼安裝,就必須安裝C的編譯工具。

在Mac系統中,只要你安裝了Xcode,就已經包含了相應的編譯工具。

在類Unix系統中,需要安裝gcc等工具。例如Ubuntu系統可通過在終端中執行sudo apt-get install gcc
libc6-dev來安裝編譯工具。

在Windows系統中,你需要安裝MinGW,然後通過MinGW安裝gcc,並設置相應的環境變數。

你可以直接去官網下載源碼,找相應的goVERSION.src.tar.gz的文件下載,下載之後解壓縮到$HOME目錄,執行如下代碼:
cd go/src
./all.bash

運行all.bash後出現喚跡晌"ALL TESTS PASSED"字樣時才算安裝成功。

上面是Unix風格的命令,Windows下的安裝方式類似,只不過是運行all.bat,調用的編譯器是MinGW的gcc。

如果是Mac或者Unix用戶需要設置幾個環境變數,如果想重啟之後也能生效的話把下面的命令寫到.bashrc或者.zshrc裡面,
export GOPATH=$HOME/gopath
export PATH=$PATH:$HOME/go/bin:$GOPATH/bin

如果你是寫入文件的,記得執行bash .bashrc或者bash
.zshrc使得設置立馬生效。

如果是window系統,就需要設置環境變數,在path裡面增加相應的go所在的目錄,設置gopath變數。

當你設置完畢之後在命令行裡面輸入go,看到如下圖片即說明你已經安裝成功

圖1.1 源碼安裝之後執行Go命令的圖

如果出現Go的Usage信息,那麼說明Go已經安裝成功了;如果出現該命令不存在,那麼可以檢查一下自己的PATH環境變中是否包含了Go的安裝目錄。

關於上面的GOPATH將在下面小節詳細講解

Go標准包安裝

Go提供了每個平台打好包的一鍵安裝,這些包默認會安裝到如下目錄:/usr/local/go
(Windows系統:c:\Go),當然你可以改變他們的安裝位置,但是改變之後你必須在你的環州仿境變數中設置如下信息:
export GOROOT=$HOME/go
export GOPATH=$HOME/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

上面這些命令對於Mac和Unix用戶來說最好是寫入.bashrc或者.zshrc文件,對於windows用戶來說當然是寫入環境變數。

如何判斷自己的操作系統是32位還是64位?

我們接下來的Go安裝需要判斷操作系統的位數,所以這小節我們先確定自己的系統類型。

Windows系統用戶請按Win+R運行cmd,輸入systeminfo後回車,稍等片刻,會出現一和鋒些系統信息。在「系統類型」一行中,若顯示「x64-based
PC」,即為64位系統;若顯示「X86-based PC」,則為32位系統。

Mac系統用戶建議直接使用64位的,因為Go所支持的Mac OS X版本已經不支持純32位處理器了。

Linux系統用戶可通過在Terminal中執行命令arch(即uname
-m)來查看系統信息:

64位系統顯示
x86_64

32位系統顯示
i386

Mac 安裝

訪問下載地址,32位系統下載go1.4.2.darwin-386-osx10.8.pkg,64位系統下載go1.4.2.darwin-amd64-osx10.8.pkg,雙擊下載文件,一路默認安裝點擊下一步,這個時候go已經安裝到你的系統中,默認已經在PATH中增加了相應的~/go/bin,這個時候打開終端,輸入go

看到類似上面源碼安裝成功的圖片說明已經安裝成功

如果出現go的Usage信息,那麼說明go已經安裝成功了;如果出現該命令不存在,那麼可以檢查一下自己的PATH環境變中是否包含了go的安裝目錄。

Linux 安裝

訪問下載地址,32位系統下載go1.4.2.linux-386.tar.gz,64位系統下載go1.4.2.linux-amd64.tar.gz,

假定你想要安裝Go的目錄為 $GO_INSTALL_DIR,後面替換為相應的目錄路徑。

解壓縮tar.gz包到安裝目錄下:tar zxvf go1.4.2.linux-amd64.tar.gz -C
$GO_INSTALL_DIR。

設置PATH,export PATH=$PATH:$GO_INSTALL_DIR/go/bin

然後執行go

圖1.2 Linux系統下安裝成功之後執行go顯示的信息

如果出現go的Usage信息,那麼說明go已經安裝成功了;如果出現該命令不存在,那麼可以檢查一下自己的PATH環境變中是否包含了go的安裝目錄。

Windows 安裝

訪問Google Code 下載頁,32
位請選擇名稱中包含 windows-386 的 msi 安裝包,64 位請選擇名稱中包含 windows-amd64 的。下載好後運行,不要修改默認安裝目錄
C:\Go\,若安裝到其他位置會導致不能執行自己所編寫的 Go 代碼。安裝完成後默認會在環境變數 Path 後添加 Go 安裝目錄下的 bin 目錄
C:\Go\bin\,並添加環境變數 GOROOT,值為 Go 安裝根目錄 C:\Go\ 。

驗證是否安裝成功

在運行中輸入 cmd 打開命令行工具,在提示符下輸入 go,檢查是否能看到 Usage 信息。輸入
cd %GOROOT%,看是否能進入 Go 安裝目錄。若都成功,說明安裝成功。

不能的話請檢查上述環境變數 Path 和 GOROOT 的值。若不存在請卸載後重新安裝,存在請重啟計算機後重試以上步驟。

第三方工具安裝

GVM

gvm是第三方開發的Go多版本管理工具,類似ruby裡面的rvm工具。使用起來相當的方便,安裝gvm使用如下命令:
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

安裝完成後我們就可以安裝go了:
gvm install go1.4.2
gvm use go1.4.2

也可以使用下面的命令,省去每次調用gvm use的麻煩: gvm use go1.4.2 --default

執行完上面的命令之後GOPATH、GOROOT等環境變數會自動設置好,這樣就可以直接使用了。

apt-get

Ubuntu是目前使用最多的Linux桌面系統,使用apt-get命令來管理軟體包,我們可以通過下面的命令來安裝Go,為了以後方便,應該把
git mercurial 也安裝上:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:gophers/go
sudo apt-get update
sudo apt-get install golang-stable git-core mercurial

homebrew

homebrew是Mac系統下面目前使用最多的管理軟體的工具,目前已支持Go,可以通過命令直接安裝Go,為了以後方便,應該把
git mercurial 也安裝上:
brew update && brew upgrade
brew install go
brew install git
brew install mercurial

D. 樹莓派中怎麼編譯golang,求大神支招

從源代碼扮運編譯飢明golang(sd) 還是編譯go程序?

如果是編譯廳肢梁go程序的話直接用go交叉編譯一個linux/arm版本的可執行文件就行,可以裝個gox, 能同時編譯多個版本

E. 如何創建,編譯,打包go語言的源代碼和工程

1.最簡單的方法:
public static String reverse1(String str)
{ return new StringBuffer(str).reverse().toString();
}
2.最常用的方法:
public static String reverse3(String s)
{ char[] array = s.toCharArray();
String reverse = ""; //注意這是空串,不是null
for (int i = array.length - 1; i >= 0; i--)
reverse += array[i];
return reverse;
}
3.常用方法的變形:
public static String reverse2(String s)
{ int length = s.length();
String reverse = ""; //注意這是空串,不是null
for (int i = 0; i < length; i++)
reverse = s.charAt(i) + reverse;//在字元串前面連接, 而非常見的後面
return reverse;
}

F. Go源碼編譯

以go 1.18.2版本為例;假設你還沒有在系統裝安裝go環境;下面一步步教你源碼編譯。
系統環境:

到此,運行go命令的時候,就是使用源碼編譯的二進制了。如果之後有需求修改go源碼。重復如下步驟即可:

G. 怎麼編譯golang寫的程序為系統服務

設仔悔置GOPATH,這個環境變數指向你的projectDir(工程目錄),形如:GOPATH=/home/user/ext:/home/user/projectDir (可以設置多凱戚亮個工程目錄,linux下用冒號盯寬分隔,windows下用分號分隔)
創建工程文件夾projectDir
在projectDir下創建src目錄
在src下創建區分包的文件夾myDir
在myDir下創建包pkgDir
在pkgDir下創建package source源代碼文件,這些文件的package都是pkgDir

H. go編譯整個文件夾

Copyright © 1999-2020, CSDN.NET, All Rights Reserved

打開APP

銀色種子
關注
go 編譯步驟 原創
2021-04-23 16:29:49

銀色種子

碼齡7年

關注

## go 步驟

```

/*
Go項目構建及編譯
一個Go工程中主要包含以下三個目錄:
src:源代碼文件
pkg:包文件
bin:相關bin文件

1: 建立工程文件夾 goproject
2: 在工程文件夾中建立src,pkg,bin文件夾
3: 在GOPATH中添加projiect路徑 例 e:/goproject
4: 如工程中有自己的包examplepackage,那在src文件夾下建立以包名命名的文件夾 例 examplepackage
5:在src文件夾下編寫主程序代碼代碼 goproject.go
6:在examplepackage文件夾中編寫 examplepackage.go 和 包測試文件 examplepackage_test.go
7:編譯調試包
go build examplepackage
go test examplepackage
go install examplepackage
這時在pkg文件夾中可以發現會有一個相應的操作系統文件夾如windows_386z,
在這個文件夾中會有examplepackage文件夾,在該文件中有examplepackage.a文件
8:編譯主程序
go build goproject.go
成功後會生成goproject.exe文件
至此一個Go工程編輯成功。
*/

I. ubuntu下怎麼配置go語言開發環境

具體步攔培驟:

1、去官網下載go1.1.2的tarball,一般下載到tem目錄

2、打開終端cd /usr/local, tar -zxvf go1.1.2.linux-386.tar.gz

將源碼文件解壓縮到/usr/local目錄,如果解壓到其他目錄,需要自己設置GOROOT

3、安裝gcc工嫌掘具,因為golang有些功能是使用c寫

sudo apt-get install bison gawk gcc libc6-dev make

4、$ cd go/src,$ ./all.bash

運行bash腳本,芹衡核如果運行正常會獲得你的操作系統和cpu信息,自動編譯安裝

5、將export PATH=$PATH:/usr/local/go/bin 寫入$HOME/.profile

最後進行測試輸入go version 會顯示go1.1.2 linux/386

J. win7怎樣編譯ngork源碼

1、安裝google go
2、安裝git
3、安裝Mingw
4、把go的bin目錄添加到PATH環境變數,可以直接在CMD中執行
SET PATH=%PATH%;C:\go\bin
5、把mingw的bin目錄添加到PATH路徑
SET PATH=%PATH%;C:\go\bin
6、下載ngrok源碼,
7、將下載的zip解壓出來,修改Makefile
將 export GOPATH:=$(shell pwd)
改為 export GOPATH:=C:\Users\Administrator\Desktop\ngork\ngrok-src
將 bin/go-bindata:
GOOS="" GOARCH="" go get github.com/jteeuwen/go-bindata/go-bindata
這段改為 bin/go-bindata:
GOOS=windows GOARCH=amd64 go get github.com/jteeuwen/go-bindata/go-bindata
8、修改log4go的路徑
修改src\ngrok\log\logger.go中log4o那段代碼為
log "github.com/keepeye/log4go"
9、cmd執行
make release-all

熱點內容
編譯703n固件 發布:2025-09-18 08:50:59 瀏覽:537
三星手機系統文件夾是哪個文件夾 發布:2025-09-18 08:48:45 瀏覽:280
rmijava 發布:2025-09-18 08:38:26 瀏覽:18
sql軟體和伺服器怎麼連接 發布:2025-09-18 08:27:47 瀏覽:937
手機java模擬器 發布:2025-09-18 07:13:29 瀏覽:418
linux線程的棧大小 發布:2025-09-18 07:09:42 瀏覽:635
廢舊電腦做linux伺服器 發布:2025-09-18 07:06:50 瀏覽:265
終端配置怎麼寫 發布:2025-09-18 06:44:42 瀏覽:804
ftp手機登陸 發布:2025-09-18 06:43:04 瀏覽:767
emc存儲800電話 發布:2025-09-18 06:32:49 瀏覽:964