看了一篇文章改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
複製代碼