




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第修改并編譯golang源碼的操作步驟最近為了做HyperledgerFabric國(guó)密改造,涉及到了golang源碼的改動(dòng)。特將操作過(guò)程整理如下,以供參考:
golang的源碼安裝其實(shí)比較簡(jiǎn)單,只需運(yùn)行源碼包中的腳本src/all.bash,等到出現(xiàn)類似以下字樣就安裝好了:
InstalledGoforlinux/amd64inxxx(目錄地址)
Installedcommandsinxxx(目錄地址)
但是在源碼安裝1.5版本以上的go時(shí)會(huì)報(bào)以下的錯(cuò)誤:
cmd/dist
ERROR:Cannotfind/home/fabric/go1.4/bin/go.
Set$GOROOT_BOOTSTRAPtoaworkingGotree=Go1.4.
這是由于go1.5版以后的編譯安裝需要1.4版本go,所以如果想要通過(guò)源碼方式安裝高版本go,必須先安裝好1.4版本的go。
其實(shí)這里不限定使用go1.4版本,如果你需要得到1.10版本的golang,你也可以用1.9(1.10)版本的golang來(lái)編譯。
讓我們開(kāi)始操作吧!
為了方便修改調(diào)試,可以fork官方的倉(cāng)庫(kù)(/golang/go.git),然后拉取自己倉(cāng)庫(kù)中的代碼,例如我的用戶名是Mango
第一步、安裝golang1.4
主要操作如下:
為了方便操作,我們切換到root用戶
fabric@fabric-VirtualBox:~$suroot
為了方便統(tǒng)一管理,將golang源碼放入GOPATH中
root@fabric:~#exportGOPATH=/opt/gopath
root@fabric:~#cd$GOPATH/src//Mango/
root@fabric:/opt/gopath/src//Mango#gitclone/Mango/go.git
Cloninginto'go'...
remote:Countingobjects:322777,done.
remote:Compressingobjects:100%(73/73),done.
remote:Total322777(delta32),reused54(delta28),pack-reused322675
Receivingobjects:100%(322777/322777),147.71MiB|3.49MiB/s,done.
Resolvingdeltas:100%(255582/255582),done.
友情提醒下,雖然可能有點(diǎn)啰嗦,但是Mango/go這個(gè)倉(cāng)庫(kù)其實(shí)是不存在的,這里只是為了方便舉例子,大家可以自行從官方倉(cāng)庫(kù)fork分支...
切換為go1.4分支
root@fabric:/opt/gopath/src//Mango#cdgo
root@fabric:/opt/gopath/src//Mango/go#gitcheckoutrelease-branch.go1.4
Branchrelease-branch.go1.4setuptotrackremotebranchrelease-branch.go1.4fromorigin.
Switchedtoanewbranch'release-branch.go1.4'
進(jìn)入src目錄,并運(yùn)行all.bash安裝腳本,稍等片刻即可安裝成功:
root@fabric:/opt/gopath/src//Mango/go#cdsrc
root@fabric:/opt/gopath/src//Mango/go/src#./make.bash
#BuildingCbootstraptool.
cmd/dist
#BuildingcompilersandGobootstraptoolforhost,linux/amd64.
lib9
libbio
liblink
cmd/cc
cmd/gc
cmd/6l
....
#CheckingAPIcompatibility.
Skippingcmd/apichecks
real0m0.538s
user0m0.310s
sys0m0.191s
ALLTESTSPASSED
InstalledGoforlinux/amd64in/root/software/go
Installedcommandsin/root/software/go/bin
***Youneedtoadd/root/software/go/bintoyourPATH.
如果遇到報(bào)錯(cuò)
cannotloadDWARFoutputfrom$WORK/os/user/_obj//_cgo_.o:decodingdwarfsectioninfoatoffset0x4:unsupportedversion0
需要關(guān)閉cgo支持,重新編譯
root@fabric:/opt/gopath/src//Mango/go/src#exportCGO_ENABLED=0
root@fabric:/opt/gopath/src//Mango/go/src#./make.bash
最后,我們將編譯好的go1.4復(fù)制到/usr/local下方便以后使用
root@fabric:/opt/gopath/src//Mango/go/src#cp-rp../../go/usr/local/go1.4
這樣你就能得到1.4版本的go了。
第二步、安裝golang1.9
主要操作如下:
我們需要編譯好的golang環(huán)境支持c語(yǔ)言的文件,所以需要開(kāi)啟cgo
root@fabric:/opt/gopath/src//Mango/go/src#exportCGO_ENABLED=1
我們需要指定由go1.4進(jìn)行編譯,所以得設(shè)置以下環(huán)境變量
root@fabric:/opt/gopath/src//Mango/go/src#exportGOROOT_BOOTSTRAP=/usr/local/go1.4
這里就用到了前面復(fù)制得到的go1.4目錄
回到go源碼根目錄,并切換分支至1.9
root@fabric:/opt/gopath/src//Mango/go/src#cd../
root@fabric:/opt/gopath/src//Mango/go#gitcheckoutrelease-branch.go1.9
Branchrelease-branch.go1.9setuptotrackremotebranchrelease-branch.go1.9fromorigin.
Switchedtoanewbranch'release-branch.go1.9'
下面的過(guò)程就和編譯go1.4很類似,不再贅述
root@fabric:/opt/gopath/src//Mango/go#cdsrc
root@fabric:/opt/gopath/src//Mango/go#./make.bash
...
這里的make.bash在一些版本中,也可能是all.bash
最后將編譯好的go1.9復(fù)制到/usr/local下,作為默認(rèn)的go
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 制定科學(xué)的招聘與選拔流程計(jì)劃
- 城市交通與城市規(guī)劃理論創(chuàng)新研究重點(diǎn)基礎(chǔ)知識(shí)點(diǎn)
- 城市交通規(guī)劃政策研究重點(diǎn)基礎(chǔ)知識(shí)點(diǎn)
- 社交媒體營(yíng)銷的季度目標(biāo)與策略計(jì)劃
- 2024年湛江市民政局招聘工作人員筆試真題
- 網(wǎng)絡(luò)管理工具的優(yōu)勢(shì)及試題及答案
- 2024年江西長(zhǎng)運(yùn)科技有限公司招聘客服人員真題
- 2024年海南省地質(zhì)局下屬事業(yè)單位真題
- 2024年貴州省農(nóng)業(yè)農(nóng)村廳下屬事業(yè)單位真題
- 2024年寧波慈溪市附海鎮(zhèn)招聘筆試真題
- 少先隊(duì)的測(cè)試題及答案
- 職業(yè)技術(shù)學(xué)院食品質(zhì)量與安全專業(yè)《食品化學(xué)》課程標(biāo)準(zhǔn)
- 公共組織績(jī)效評(píng)估-形考任務(wù)二(占10%)-國(guó)開(kāi)(ZJ)-參考資料
- 太原高考三模試題及答案
- 2024年黑龍江省三支一扶考試真題
- 貿(mào)易人居間合同協(xié)議
- 2025至2030中國(guó)聚苯并咪唑(PBI)行業(yè)供需態(tài)勢(shì)及未來(lái)發(fā)展?jié)摿?bào)告
- 北京2025年中國(guó)工業(yè)互聯(lián)網(wǎng)研究院社會(huì)在職人員招聘15人筆試歷年參考題庫(kù)附帶答案詳解
- GB 38031-2025電動(dòng)汽車用動(dòng)力蓄電池安全要求
- 期權(quán)開(kāi)戶考試題及答案
- DBJT45-全過(guò)程工程咨詢服務(wù)績(jī)效評(píng)價(jià)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論