看了一篇文章改go源码重新编译, 虽然工作中没使用到但是好奇试下, 下面是最简单的修改 fmt 包的 Println 函数为例进行了修改,
项目地址: https://github.com/golang/go
git clone方式太慢, 这里推荐一个加速的地址 (地址: https://github.zhlh6.cn/)
转换后直接使用下方地址 clone 即可
速度变得快了一点吧~😅
下载源代码后, 修改代码
func Println(a ...interface{}) (n int, err error) {
println("hello 小宇")
return Fprintln(os.Stdout, a...)
}
进入编译
./src/make.bash
如果遇到 make.bash must be run from $GOROOT/src, 则需要修改 GOROOT 指向项目源码目录即可, 再进入到src目录执行 make.bash. 编译成功后则在src目录下生成bin目录
查看新编译 go 执行文件
调用 Println
package main
import "fmt"
func main(){
fmt.Println("123")
}
编译go源码
./bin/go run main.go
注意这里 go 命令必须是我们刚编译成功的执行文件 output:
hello 小宇
123