1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      Go語言是怎么完成編譯的 go語言編譯過程

      windows 怎么編譯 go語言

      1、解壓壓縮包到go工作目錄,如解壓到E:\opensource\go\go,解壓后的目錄結(jié)構(gòu)如下:

      在讓胡路等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都營(yíng)銷網(wǎng)站建設(shè),外貿(mào)營(yíng)銷網(wǎng)站建設(shè),讓胡路網(wǎng)站建設(shè)費(fèi)用合理。

      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",以便能夠直接調(diào)用go命令來編譯go代碼,至此go編譯環(huán)境就配置好了

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

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

      4、測(cè)試go編譯環(huán)境,啟動(dòng)一個(gè)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測(cè)試程序,go語言包中test目錄帶有helloworld.go測(cè)試程序,源碼見"附一 helloworld.go",

      直接調(diào)用"go build helloworld.go"就生成了"helloworld.exe"可執(zhí)行程序,運(yùn)行一下這個(gè)程序看到了我們期望的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")

      }

      如何編譯arm linux的go

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

      注:本文選用樹莓派做測(cè)試,因?yàn)闃漭墒腔贏RM平臺(tái)的。

      1、編譯工具配置

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

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

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

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

      2、獲取golang源代碼

      2.1 直接從官網(wǎng)下載源代碼壓縮包。

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

      2.2 使用git工具獲取。

      golang使用git版本管理工具,也可以使用git獲取golang源代碼。推薦使用這個(gè)方法,因?yàn)橐院罂梢噪S時(shí)獲取最新的golang源代碼。

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

      2.2.2 克隆遠(yuǎn)程golang的git倉庫到本地

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

      git clone

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

      git clone

      視網(wǎng)絡(luò)情況,下載可能需要不少時(shí)間。我2M的帶寬花了將近兩個(gè)小時(shí)才下載完,雖然整個(gè)項(xiàng)目不過幾十兆= =

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

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

      git checkout go1.4.1

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

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

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

      3.1 GOROOT

      主要代表golang樹結(jié)構(gòu)目錄的路徑,也就是上面git檢出的go目錄。一般可以不用設(shè)置這個(gè)環(huán)境變量,因?yàn)榫幾g的時(shí)候默認(rèn)會(huì)以go目錄下src子目錄中的all.bash腳本運(yùn)行時(shí)的父目錄作為GOROOT的值。為了保險(xiǎn)起見,可以直接設(shè)置為go目錄的路徑。

      3.2 GOOS和GOARCH

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

      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

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

      3.3 GOARM

      表示使用的浮點(diǎn)運(yùn)算協(xié)處理器版本號(hào),只對(duì)arm平臺(tái)有用,可選值有5,6,7。如果是在目標(biāo)平臺(tái)上編譯源代碼,這個(gè)值可以不設(shè)置,它會(huì)自動(dòng)判斷需要使用哪一個(gè)版本。

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

      export GOROOT=你的go目錄路徑

      export GOOS=linux

      export GOARCH=arm

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

      4、編譯源代碼

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

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

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

      export PATH=$PATH:$GOROOT/bin

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

      至此,golang源代碼編譯安裝成功。執(zhí)行g(shù)o version應(yīng)該就能看到當(dāng)前golang的版本信息,表示編譯安裝成功。

      Go語言編譯成aar并調(diào)試

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

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

      GOPATH的值可以有多個(gè),用半角分號(hào)間隔,但不能以其結(jié)束,設(shè)置完成后需要重新做 gomobile init 。

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

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

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

      5. 編譯

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

      會(huì)生成一個(gè)hello.aar文件

      6. 導(dǎo)入到android工程

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

      在根結(jié)點(diǎn)加入:

      在dependencies結(jié)點(diǎn)下加入依賴:

      7. 在Java中測(cè)試

      運(yùn)行后,結(jié)果會(huì)輸出 Hello, Android and Gopher

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

      Go是一個(gè)圖靈完備的語言

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

      至于怎么編譯自身的:

      用其它語言比如c++實(shí)現(xiàn)一個(gè)[Go語言編譯器-1]

      用Go語言寫一個(gè)[Go語言編譯器-2]

      用這個(gè)c++實(shí)現(xiàn)的[Go語言編譯器-1]編譯第2步里面說的Go語言寫的[Go語言編譯器-2]

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

      OK,現(xiàn)在有一個(gè)Go語言實(shí)現(xiàn)的編譯器了,最開始那個(gè)c++寫的編譯器沒用了,可以扔掉不要了。以后就不停的優(yōu)化使用這個(gè)Go語言實(shí)現(xiàn)的自身的編譯器就行了。


      網(wǎng)站題目:Go語言是怎么完成編譯的 go語言編譯過程
      文章源于:http://www.ef60e0e.cn/article/ddipojh.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        连山| 太湖县| 屏边| 浮梁县| 江城| 永平县| 新河县| 韶山市| 万荣县| 顺昌县| 绥宁县| 扶余县| 商水县| 扶风县| 迁安市| 抚宁县| 兴宁市| 图们市| 茶陵县| 山东| 兴国县| 曲阳县| 石林| 巴塘县| 当阳市| 阿拉尔市| 黄石市| 武冈市| 广宗县| 鲜城| 项城市| 濮阳县| 莱州市| 读书| 蓬安县| 孝昌县| 武乡县| 九台市| 青铜峡市| 原阳县| 富民县|