hello go的makefile

来源:互联网 发布:中华遗产 知乎 编辑:程序博客网 时间:2024/06/06 06:33

通常编译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 testtest:        @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

原创粉丝点击