真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

go語言整包編譯 go 預編譯

windows 怎么編譯 go語言

1、解壓壓縮包到go工作目錄,如解壓到E:\opensource\go\go,解壓后的目錄結構如下:

成都創(chuàng)新互聯企業(yè)建站,10年網站建設經驗,專注于網站建設技術,精于網頁設計,有多年建站和網站代運營經驗,設計師為客戶打造網絡企業(yè)風格,提供周到的建站售前咨詢和貼心的售后服務。對于網站設計、成都網站制作中不同領域進行深入了解和探索,創(chuàng)新互聯在網站建設中充分了解客戶行業(yè)的需求,以靈動的思維在網頁中充分展現,通過對客戶行業(yè)精準市場調研,為客戶提供的解決方案。

E:\opensource\go\go

├─api

├─bin

│ ├─go.exe

│ ├─godoc.exe

│ └─gofmt.exe

├─doc

├─include

├─lib

├─misc

├─pkg

├─src

└─test

2、增加環(huán)境變量GOROOT,取值為上面的go工作目錄

3、Path環(huán)境變量中添加";%GOROOT%\bin",以便能夠直接調用go命令來編譯go代碼,至此go編譯環(huán)境就配置好了

注:如果不想手動設置系統(tǒng)環(huán)境變量,也可下載go啟動環(huán)境批處理附件,

修改goenv.bat文件中的GOROOT值為上面的go工作目錄后直接雙擊該bat文件,go編譯環(huán)境變量即設置完成。

4、測試go編譯環(huán)境,啟動一個cmd窗口,直接輸入go,看到下面的提示就是搭建成功了

E:\opensource\go\gogo

Go is a tool for managing Go source code.

Usage:

go command [arguments]

The commands are:

build compile packages and dependencies

clean remove object files

doc run godoc on package sources

env print Go environment information

fix run go tool fix on packages

fmt run gofmt on package sources

get download and install packages and dependencies

install compile and install packages and dependencies

list list packages

run compile and run Go program

test test packages

tool run specified go tool

version print Go version

vet run go tool vet on packages

Use "go help [command]" for more information about a command.

Additional help topics:

gopath GOPATH environment variable

packages description of package lists

remote remote import path syntax

testflag description of testing flags

testfunc description of testing functions

Use "go help [topic]" for more information about that topic.

5、編譯helloworld測試程序,go語言包中test目錄帶有helloworld.go測試程序,源碼見"附一 helloworld.go",

直接調用"go build helloworld.go"就生成了"helloworld.exe"可執(zhí)行程序,運行一下這個程序看到了我們期望的hello,wolrd。

E:\opensource\go\go\testgo build helloworld.go

E:\opensource\go\go\testhelloworld.exe

hello, world

E:\opensource\go\go\test

附一 helloworld.go

// cmpout

// Copyright 2009 The Go Authors. All rights reserved.

// Use of this source code is governed by a BSD-style

// license that can be found in the LICENSE file.

// Test that we can do page 1 of the C book.

package main

func main() {

print("hello, world\n")

}

go語言 一個主package包引入同級目錄下go文件包編譯出錯??!

go語言 一個主package包引入同級目錄下go文件包編譯出錯是設置錯誤造成的,解決方法為:

1、先使用import "strings"導入strings庫。

2、HasPrefix?判斷字符串?s?是否以?prefix?開頭。

3、HasSuffix?判斷字符串?s?是否以?suffix?結尾。

4、可以看看判斷的代碼。

5、在cmd下運行一下go run test.go,看看如下結果。

6、Contains?判斷字符串?s?是否包含?substr,也就是判斷一下S是否在strings中。

7、在cmd下運行go run test.go看看結果。

Go語言編譯成aar并調試

go及gomobile的環(huán)境配置這里就不介紹了,直接說aar的生成和使用。

1. 設置環(huán)境變量GOPATH

GOPATH的值可以有多個,用半角分號間隔,但不能以其結束,設置完成后需要重新做 gomobile init 。

2. 在GOPATH里創(chuàng)建src文件夾,用于存放go的包和源文件

3. 在src中創(chuàng)建hello文件夾(go文件的包名)

4. 在hello中創(chuàng)建hello.go文件,并輸入內容

5. 編譯

執(zhí)行命令: gomobile bind -target=android hello

會生成一個hello.aar文件

6. 導入到android工程

將hello.aar文件放入工程的libs中,并配置build.gradle

在根結點加入:

在dependencies結點下加入依賴:

7. 在Java中測試

運行后,結果會輸出 Hello, Android and Gopher

Go語言編譯器TinyGo,基于LLVM,在微控制器和小系統(tǒng)上編譯和運行

TinyGo是一個為微控制器、WebAssembly(Wasm)和命令行工具等小型場景設計的Go語言編譯器。TinyGo重用了Go語言工具和LLVM使用的庫,以編譯用Go語言編寫的程序。目前,該項目在GitHub上已經積累了10.1k的Star。

如下為一個示例程序,當運行在任何支持的帶板載LED的主板上時,則會點亮內置LED。

上述程序可以在單片機、Adafruit ItsyBitsy M0微控制器或任何支持的帶內置LED的板上進行編譯和不需要修改的運行,只要設置正確的TinyGo編譯器目標即可。例如,設置如下目標可以編譯和點亮 單片機。

項目概述

TinyGo項目旨在將Go語言引入到具有單進程或核心的微控制器和小系統(tǒng)。TinyGo類似于emgo,但主要的區(qū)別在于作者想要保留Go內存模型。另一個區(qū)別在于TinyGo在內部使用LLVM,因而可以獲得更小更高效的代碼以及更高的靈活性。

創(chuàng)建TinyGo項目的初衷是,如果Python可以在微控制器上運行,Go語言當然也應該能夠在更低級微設備上運行。

支持設備

你可以為微控制器、WebAssembly和Linux編譯TinyGo程序。目前,TinyGo支持以下85種微處理器板。

更多技術細節(jié)請參閱原項目。

Go 是怎么使用 Go 來編譯自身的

是Go語言嗎?

Go 編譯過程 九個步驟

第一步. all.bash

%?cd?$GOROOT/src

%?./all.bash

第一步 all.bash?只是調用了另外兩個 shell 腳本:make.bash?和run.bash。若使用 Windows 或 Plan 9,其過程也基本類似,只是腳本分別以 .bat 或 .rc 結尾。在文章的其他部分,請用適當的操作系統(tǒng)對應的擴展來補全命令。

第二步. make.bash

.?./make.bash?--no-banner

make.bash 作為 all.bash 內容的一部分,如果它退出也會中斷構建過程

第三步. cmd/dist

gcc?-O2?-Wall?-Werror?-ggdb?-o?cmd/dist/dist?-Icmd/dist?cmd/dist/*.c

當健全檢查完成后,make.bash 開始編譯?cmd/dist。

第四步. go_bootstrap

現在 go_bootstrap 已經構建完成,make.bash 的最后一步是使用 go_bootstrap 編譯完整的 Go 標準庫,包括一個完整的 go 工具用以替換。

echo?"#?Building?packages?and?commands?for?$GOOS/$GOARCH."

"$GOTOOLDIR"/go_bootstrap?install?-gcflags?"$GO_GCFLAGS"?\

-ldflags?"$GO_LDFLAGS"?-v?std

第五步. run.bash

現在 make.bash 已經完成,回到 all.bash 的執(zhí)行,這會調用 run.bash。run.bash 的任務是編譯和測試標準庫、運行時以及語言測試集。

bash?run.bash?--no-rebuild

由于 make.bash 和 run.bash 都會調用 go install -a std,因此需要使用 –no-rebuild 標志來避免重復前面的步驟,–no-rebuild 跳過了第二個 go install。

#?allow?all.bash?to?avoid?double-build?of?everythingrebuild=trueif?[?"$1"?=?"--no-rebuild"?];?then?shiftelse?echo?'#?Building?packages?and?commands.'?time?go?install?-a?-v?std?echofi

第六步. go test -a std

echo?'#?Testing?packages.'

time?go?test?std?-short?-timeout=$(expr?120?\*?$timeout_scale)s

echo

接下來 run.bash 會在標準庫里所有的包上來運行用 testing 包編寫的單元測試。由于 $GOPATH 和 $GOROOT 中有著相同的命名空間,所以不能直接使用 go test … 否則 $GOPATH 中的每個包也會被逐一測試,因此創(chuàng)建了一個用于標準庫中的包的別名:std。由于一些測試需要比較長的時間,且會消耗大量內存,因此用 -short 標志對一些測試進行了過濾。

第七步. runtime 和 cgo 測試

run.bash 接下來的部分會運行平臺對 cgo 支持的測試,執(zhí)行一些性能測試,并且編譯一些伴隨 Go 發(fā)行版一起的雜項程序。隨著時間的流逝,這些雜項程序的清單會越來越長,那么它們也就會不可避免的被從編譯過程中悄悄剝離出去。

第八步. go run test

(xcd?../test

unset?GOMAXPROCS

time?go?run?run.go

)?||?exit?$?

run.bash 的倒數第二步會調用在 $GOROOT 下的 test 目錄里的編譯器和運行時的測試。他們是對于編譯器和運行時自身的,較為低級細節(jié)的測試。會執(zhí)行語言規(guī)格測試,test/bugs 和 test/fixedbugs 子目錄保存有那些已經被發(fā)現并被修復的問題的獨立的測試。驅動測試的是一個小 Go 程序 $GOROOT/test/run.go,會執(zhí)行 test 目錄里的每個 .go 文件。一些 .go 文件的首行包含了指導 run.go 對結果作出判斷的指令,例如,程序將會失敗,或提供一個確定的輸出隊列。

第九步. go tool api

echo?'#?Checking?API?compatibility.'

go?tool?api?-c?$GOROOT/api/go1.txt,$GOROOT/api/go1.1.txt?\

-next?$GOROOT/api/next.txt?-except?$GOROOT/api/except.txt

run.bash 的最后一步調用了 api 工具。

如何編譯arm linux的go

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

注:本文選用樹莓派做測試,因為樹莓派是基于ARM平臺的。

1、編譯工具配置

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

1.1 在Ubuntu或Debian平臺上可以使用sudo apt-get install gcc libc6-dev命令安裝,樹莓派的RaspBian系統(tǒng)是基于Debian修改的,所以可以使用這種方法安裝。

1.2 在RedHat或CentOS 6平臺上可以使用sudo yum install gcc libc-devel命令安裝。

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

2、獲取golang源代碼

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

golang官網提供golang的源代碼壓縮包,可以直接下載,最新的1.4.1版本源代碼鏈接:

2.2 使用git工具獲取。

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

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

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

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

git clone

大陸地區(qū)可能會獲取失敗,在不翻墻的情況下我試了幾次都沒成功,原因大家都懂的。好在google已經將golang也托管到github上面,所以也可以通過下面命令獲?。?/p>

git clone

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

下載完成后,可以看到目錄下多了一個go目錄,里面即為golang的源代碼,在終端上執(zhí)行cd go命令進入該目錄。

執(zhí)行下面命令檢出go1.4.1版本的源代碼,因為現在已經有新的代碼提交上去了,最新的代碼可能不是最穩(wěn)定的:

git checkout go1.4.1

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

3、設置golang的編譯環(huán)境變量

主要有GOROOT、GOOS、GOARCH、GOARM四個環(huán)境變量需要設置,先解釋四個環(huán)境變量的意義。

3.1 GOROOT

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

3.2 GOOS和GOARCH

分別代表編譯的目標系統(tǒng)和平臺,可選值如下:

GOOS GOARCH

darwin 386

darwin amd64

dragonfly 386

dragonfly amd64

freebsd 386

freebsd amd64

freebsd arm

linux 386

linux amd64

linux arm

netbsd 386

netbsd amd64

netbsd arm

openbsd 386

openbsd amd64

plan9 386

plan9 amd64

solaris amd64

windows 386

windows amd64

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

3.3 GOARM

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

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

export GOROOT=你的go目錄路徑

export GOOS=linux

export GOARCH=arm

編輯完后保存,執(zhí)行source ~/.bashrc命令讓修改生效。

4、編譯源代碼

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

5、配置golang運行環(huán)境變量

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

export PATH=$PATH:$GOROOT/bin

保存后同樣執(zhí)行source ~/.bashrc命令讓環(huán)境變量生效。

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


網站名稱:go語言整包編譯 go 預編譯
本文路徑:http://weahome.cn/article/hphdoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部