看了一篇文章改go源码从新编译, 虽然工做中没使用到可是好奇试下, 下面是最简单的修改 fmt 包的 Println 函数为例进行了修改, 点击阅读原文能够看到参考资料, 一块儿撸起来~git
项目地址: github.com/golang/gogithub
git clone方式太慢, 这里推荐一个加速的地址 (地址: github.zhlh6.cn/)golang
转换后直接使用下方地址 clone 便可 bash
速度变得快了一点吧~😅 markdown
下载源代码后, 修改代码函数
func Println(a ...interface{}) (n int, err error) {
println("hello 小宇")
return Fprintln(os.Stdout, a...)
}
复制代码
进入编译oop
./src/make.bash
复制代码
若是遇到 make.bash must be run from $GOROOT/src, 则须要修改 GOROOT 指向项目源码目录便可, 再进入到src目录执行 make.bash. 编译成功后则在src目录下生成bin目录测试
查看新编译 go 执行文件 spa
调用 Println3d
package main
import "fmt"
func main(){
fmt.Println("123")
}
复制代码
编译go源码
./bin/go run main.go
复制代码
注意这里 go 命令必须是咱们刚编译成功的执行文件
output:
hello 小宇
123
复制代码