Go交叉编译成可执行文件在不同平台运行
目录
Golang 支持交叉编译,是个非常方便的特性,在一个平台上生成另一个平台的可执行程序。
查看支持的平台
|
|
如何进行交叉编译
编译命令示例
笔者电脑是Mac,所以这里演示一下在Mac上编译可以在Linux和Windows运行的程序
|
|
参数命令解释
GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
GOARCH:目标平台的体系架构(386、amd64、arm)
交叉编译不支持 CGO 所以要禁用它
GOARCH:目标平台的体系架构(386、amd64、arm)
交叉编译不支持 CGO 所以要禁用它
Makefile示例
如果经常需要编译多个平台的操作,可以将命令整合到Makefile中,go build -o 指定输出路径。
|
|
Makefile直接生成所有平台
|
|
Makefile生成linux平台
|
|
Makefile命令注意事项
- make: Nothing to be done这句一般是提示你已经编译好了,而且没有对代码进行任何改动。
- Makefile(注意大小写哦,M必须大写,其余必须小写)文件格式不规范,在all:或default:后面另起的一行命令中,行首没有TAB键的空格,或者有空格,但是是Space键的“ ”,不是Tab键的“ ”,这也是不行的! 解决方法,修改所有相关行使用Tab空格
demo地址:待补充