這篇文章主要介紹如何編譯go及實(shí)現(xiàn)go get進(jìn)度顯示,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)、網(wǎng)站重做改版、陽(yáng)原網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為陽(yáng)原等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
一、首先附上編譯完成能顯示go get進(jìn)度的Go包:
centos7直接解壓版go:http://pan.baidu.com/s/1mik3cI8
windows7直接解壓版go:http://pan.baidu.com/s/1jIaxKEE
一、編譯之前修改go get進(jìn)度顯示:
因?yàn)閎eego在github.com上的包有點(diǎn)大, 所以 go get github.com/leanote/leanote/app 會(huì)很慢, 這個(gè)會(huì)執(zhí)行幾分鐘或更長(zhǎng), 不知道的朋友還以為卡死了. 找了下 go get 沒(méi)有一個(gè)選項(xiàng)可以輸出進(jìn)度的, 于是決定修改golang源碼(別以為很有技術(shù)含量, 還不是go代碼?).
看了下golang的源碼 src/cmd/go 下是go命令的源碼, 其中, get.go是go get命令的代碼, build.go 是go build的代碼.
剛開(kāi)始走了點(diǎn)彎路, 想著改變get.go來(lái)顯示進(jìn)度, 無(wú)果之后想了下, go get 其實(shí)就是調(diào)用git , hg, svn的命令從倉(cāng)庫(kù)中下載的, 由此思路找到vcs.go(vcs全稱為version control system), 果然這里面包含了調(diào)用git, hg, svn的命令. 問(wèn)題迎刃而解:
修改git clone命令, 添加 --progress選項(xiàng), 使其輸出進(jìn)度
修改cmd.Run()執(zhí)行的地方, 使其將輸出定位到標(biāo)準(zhǔn)輸出流上
1. 修改git clone命令, 找到如下代碼, 在createdCmd修改為 clone --progress {repo} {dir}
其它命令hg, svn...添加進(jìn)度方法類(lèi)似
// vcsGit describes how to use Git.var vcsGit = &vcsCmd{ name: "Git", cmd: "git", createCmd: "clone {repo} {dir}", // 此處修改為 clone --progress {repo} {dir} downloadCmd: "pull --ff-only"}
2. 重定向輸出流
找到run1()方法, 在 cmd.Stderr = &buf 下添加兩行, 如:
var buf bytes.Buffer cmd.Stdout = &buf cmd.Stderr = &buf cmd.Stdout = os.Stdout // 重定向標(biāo)準(zhǔn)輸出 cmd.Stderr = os.Stderr // 重定向標(biāo)準(zhǔn)輸出 err = cmd.Run()
Ok, 搞定, 接下來(lái)執(zhí)行g(shù)olang源碼 src下的 all.bash 重新編譯golang, 編譯要些時(shí)間, 編譯完后使用go get 試試:
看到進(jìn)度條就不用擔(dān)心了吧.
之前修改golang源碼使其關(guān)閉變量未使用, 包未使用的錯(cuò)誤 :
關(guān)閉golang的 variable declared but not used 和 package imported but not used
二:window7下面編譯Go:
復(fù)制一份go源碼:
設(shè)置GOROOT_BOOTSTRAP=C:\Go1.7
環(huán)境變量設(shè)置完畢需要重啟生效?。?!
下載安裝:MinGW - Minimalist GNU for Windows
https://sourceforge.net/projects/mingw/
也可以直接下載TDM-GCC MinGW Compiler
添加到path中:
set PATH=.;C:\TDM-GCC-64\bin\
三:Centos7下面編譯Go:
linux同理,執(zhí)行編譯腳本為src下的sh all.bash
編譯完畢,執(zhí)行g(shù)o get:
以上是“如何編譯go及實(shí)現(xiàn)go get進(jìn)度顯示”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁(yè)題目:如何編譯go及實(shí)現(xiàn)goget進(jìn)度顯示
當(dāng)前地址:http://chinadenli.net/article8/gpccop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、微信公眾號(hào)、網(wǎng)站設(shè)計(jì)公司、外貿(mào)建站、做網(wǎng)站、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)