怎么编译go语言程序 怎么编译go语言程序文件( 三 )


第七步. runtime 和 cgo 测试
run.bash 接下来的部分会运行平台对 cgo 支持的测试 , 执行一些性能测试,并且编译一些伴随 Go 发行版一起的杂项程序 。随着时间的流逝,这些杂项程序的清单会越来越长,那么它们也就会不可避免的被从编译过程中悄悄剥离出去 。
第八步. go run test
(xcd ../test
unset GOMAXPROCS
time go run run.go
) || exit $?
run.bash 的倒数第二步会调用在 $GOROOT 下的 test 目录里的编译器和运行时的测试 。他们是对于编译器和运行时自身的,较为低级细节的测试 。会执行语言规格测试,test/bugs 和 test/fixedbugs 子目录保存有那些已经被发现并被修复的问题的独立的测试 。驱动测试的是一个小 Go 程序 $GOROOT/test/run.go,会执行 test 目录里的每个 .go 文件 。一些 .go 文件的首行包含了指导 run.go 对结果作出判断的指令,例如,程序将会失败 , 或提供一个确定的输出队列 。
第九步. go tool api
echo '# Checking API compatibility.'
go tool api -c $GOROOT/api/go1.txt,$GOROOT/api/go1.1.txt \
-next $GOROOT/api/next.txt -except $GOROOT/api/except.txt
run.bash 的最后一步调用了 api 工具 。
GO语言如何编译发布到Linux在命令行执行如下指令
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go//开始编译程序
Golang 的静态编译Go 语言和 C 语言的一个很大的区别是怎么编译go语言程序, Go 语言只静态编译怎么编译go语言程序 , 做个测试怎么编译go语言程序:
一方面是 Go 语言编译后的可执行文件大小比 C 语言的大很多怎么编译go语言程序,
另一方面是 C 语言的可执行文件需要依赖 glibc 动态库怎么编译go语言程序 , 
用 ldd 命令可以看出来:
或者直接删除 glibc 动态库,C 可执行程序报错,而 Go 的还能运行:
这时候只有内部命令可以运行,外部命令,包括ln甚至最常用的ls命令也不能运行了:
【怎么编译go语言程序 怎么编译go语言程序文件】 设置好LD_PRELOAD环境变量之后,ln 命令可以运行,但是sudo仍然不能运行
只能靠root用户来重新创建软连接了:
所以用 sudo 来 rm 文件要小心,还是用root比较好 。如果没有预先留一个打开的root终端,登录都登不进去 。
golang 跨平台编译只需要指定目标操作系统的平台和处理器架构即可:
因为不支持CGO , 所以要禁用CGO
然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了 。
Mac 下编译 Linux 和 Windows 平台 64位 可执行程序:
Linux下编译 Mac 和 Windows 平台64位可执行程序:
Windows下编译Mac平台64位可执行程序:
整个过程看起来非常简单,运行起来也非常简单,调用make release命令,并给VERSION变量赋值不同的版本号即可:
命令会编译出不同平台可运行的压缩包:
怎么编译go语言程序的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于怎么编译go语言程序文件、怎么编译go语言程序的信息别忘了在本站进行查找喔 。

推荐阅读