千家信息网

如何编译go及实现go get进度显示

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍如何编译go及实现go get进度显示,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、首先附上编译完成能显示go get进度的Go包:centos7直接解压版
千家信息网最后更新 2026年11月01日如何编译go及实现go get进度显示

这篇文章主要介绍如何编译go及实现go get进度显示,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、首先附上编译完成能显示go get进度的Go包:

centos7直接解压版go:http://pan.baidu.com/s/1mik3cI8

windows7直接解压版go:http://pan.baidu.com/s/1jIaxKEE

一、编译之前修改go get进度显示:

因为beego在github.com上的包有点大, 所以 go get github.com/leanote/leanote/app 会很慢, 这个会执行几分钟或更长, 不知道的朋友还以为卡死了. 找了下 go get 没有一个选项可以输出进度的, 于是决定修改golang源码(别以为很有技术含量, 还不是go代码?).

看了下golang的源码 src/cmd/go 下是go命令的源码, 其中, get.go是go get命令的代码, build.go 是go build的代码.

刚开始走了点弯路, 想着改变get.go来显示进度, 无果之后想了下, go get 其实就是调用git , hg, svn的命令从仓库中下载的, 由此思路找到vcs.go(vcs全称为version control system), 果然这里面包含了调用git, hg, svn的命令. 问题迎刃而解:

  1. 修改git clone命令, 添加 --progress选项, 使其输出进度

  2. 修改cmd.Run()执行的地方, 使其将输出定位到标准输出流上

1. 修改git clone命令, 找到如下代码, 在createdCmd修改为 clone --progress {repo} {dir}

其它命令hg, svn...添加进度方法类似

// 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 // 重定向标准输出        cmd.Stderr = os.Stderr // 重定向标准输出        err = cmd.Run()

Ok, 搞定, 接下来执行golang源码 src下的 all.bash 重新编译golang, 编译要些时间, 编译完后使用go get 试试:

看到进度条就不用担心了吧.

之前修改golang源码使其关闭变量未使用, 包未使用的错误 :

关闭golang的 variable declared but not used 和 package imported but not used

二:window7下面编译Go:

复制一份go源码:

设置GOROOT_BOOTSTRAP=C:\Go1.7

环境变量设置完毕需要重启生效!!!

下载安装: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同理,执行编译脚本为src下的sh all.bash

编译完毕,执行go get:

以上是"如何编译go及实现go get进度显示"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

编译 进度 命令 输出 源码 代码 标准 内容 变量 方法 篇文章 迎刃而解 接下来 不用 仓库 价值 全称 兴趣 含量 地方 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 广州百单互联网科技有限公司 互联网下的科技发展 腾讯科技 互联网女皇 互联网科技缩写 长亮科技 互联网金融 安控科技rtu产品工业互联网 常德市电业局互联网科技部 金融科技与互联网金融相同和不同 华服互联网科技官网 互联网行业科技股 广东鹅鹅鹅互联网科技有限公司 昆明中奇联合互联网科技 万物互联网智能科技 广西科技产业互联网是什么 中国互联网公司的科技投入 米泉互联网科技专业怎么样 亚光科技低轨卫星互联网 互联网科技创业计划的风险分析 武汉亿视互联网科技有限公司 新华互联网科技学院 互联网巨头反垄断金融科技 上海致骋互联网科技 苏州大垚互联网科技 富国互联网科技创新基金 呼和浩特新华互联网科技学院 亳州好赞互联网科技有限公司 互联网金融科技展 伊宁互联网科技做什么的 第三届互联网大会安防黑科技
0