编译部署
前言
本文将引导你完成Go项目的编译与部署,如果您只想知道怎么做,请跳转到总结。
第一步:编译
1. Go 编译命令
go build
默认情况下,go build
会根据当前的操作系统和架构生成适用于本机的静态链接的二进制文件,即所有依赖(包括 Go 标准库)都会打包到同一个可执行文件中,这样做的好处是部署时无需担心依赖库的缺失。
动态编译与静态编译的区别在于,动态编译的二进制文件需要在运行时加载依赖库,而静态编译的二进制文件则包含所有的依赖,确保了程序的可移植性。
2. 静态编译
CGO_ENABLED=0 go build
3. 动态编译
CGO_ENABLED=1 go build
4. 强制动态编译
CGO_ENABLED=1 go build -ldflags '-linkmode=external -extldflags "-shared"'