hello go的makefile

通常編譯go程序,都是用go build,或者go install, go install實際與go build做的事情是一樣的,不同的是go install最後會把可執行文件保存在$GOPATH/bin目錄下面,所以執行go install前提是要指定GOPATH環境變量。

除了直接用go 命令外,也可以把go 命令都寫到makefile裏面,然後直接執行make就可以編譯出可執行文件。關於Makefile的具體語法這裏不作詳細介紹,可以參考linux下make命令的用法,下面通過一個栗子演示下:

export GOROOT=$(shell realpath $(shell dirname $(shell which go))/..)
export GOPATH=$(shell pwd)

all: hello
        echo "Done!"

hello:
        go install github.com/user/hello

.PHONY: clean test
test:
        @echo "testing..."
        go test github.com/user/stringutil
        @echo "test Done!"
clean:
        rm -f hello bin/hello
        rm -rf pkg/*

說明下,以上makefile是在ubuntu linux 386環境上實驗的,其實go語言目前支持intel 32bits, 64bits, ARM這些平臺,後續可能還會支持更多平臺,所以這裏說明下,如果想要編譯跨平臺的可執行文件,比如我要編譯一個在arm平臺上執行的程序,這時就需要再多指定幾個環境變量(注:上面因爲我的go直接安裝的是linux 32bit 386,所以平臺,系統這些環境變量即都爲默認值,默認值就是當前宿主系統)。下面幾個環境變量指明瞭平臺和系統:
export GOARCH=arm
export GOOS=linux

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章