靜態package - skynocover/Wiki-for-GoLang GitHub Wiki
靜態package
在go run 時使用靜態檔案已被捨棄
Binary-only packages are increasingly hard to support safely.
但是可以在complie時使用靜態檔案
1. 編譯.a檔
先在/usr/local/go/src建立say資料夾
cp ./say.go /usr/local/go/src/say
在/usr/local/go/src/say
go install
因此會在 /usr/local/go/pkg/linux_amd64 建立.a檔
現在可以移除say的pkg資料夾了
2. 編譯main檔
使用
go tool compile -I /usr/local/go/pkg/linux_amd64 main.go
建立main.o檔
使用
go tool link -o main -L /usr/local/go/pkg/linux_amd64 main.o
編譯main
可以使用main了
使用makefile自動化
建立檔案 makefile
BINARY_NAME=main
build:
go tool compile -I /usr/local/go/pkg/linux_amd64 main.go
go tool link -o $(BINARY_NAME) -L /usr/local/go/pkg/linux_amd64 main.o
./$(BINARY_NAME)
使用命令
make build