go 命令
go build
go build,是我们非常常用的命令,它可以启动编译,把我们的包和相关的依赖编译成一个可执行的文件。
go help build 帮助命令
1 2 3 | go build go build . go build test .go |
以上这三种写法,都是使用当前目录编译的意思。因为我们忽略了packages
,所以自然就使用当前目录进行编译。
1 | go build shhnwagjian.com.cn /tools |
这种方式是指定包的方式,这样会明确的编译我们这个包。
1 | go build shhnwangjian.com.cn /tools/ ... |
3个点表示匹配所有字符串,这样go build
就会编译tools目录下的所有包。
Go提供了编译链工具,可以让我们在任何一个开发平台上,编译出其他平台的可执行文件。
默认情况下,都是根据我们当前的机器生成的可执行文件,比如你的是Linux 64位,就会生成Linux 64位下的可执行文件,可以使用go env查看编译环境,以下截取重要的部分。
两个重要的环境变量GOOS和GOARCH,其中GOOS指的是目标操作系统。GOOS和GOARCH组合起来,支持生成的可执行程序种类很多,具体组合参考如下
https://golang.org/doc/install/source#environment
官方介绍:
Choices for $GOOS
are darwin
(Mac OS X 10.8 and above and iOS), dragonfly
, freebsd
, linux
, netbsd
, openbsd
,plan9
, solaris
and windows
.
Choices for $GOARCH
are amd64
(64-bit x86, the most mature port), 386
(32-bit x86), arm
(32-bit ARM), arm64
(64-bit ARM), ppc64le
(PowerPC 64-bit, little-endian), ppc64
(PowerPC 64-bit, big-endian), mips64le
(MIPS 64-bit, little-endian), and mips64
(MIPS 64-bit, big-endian). mipsle
(MIPS 32-bit, little-endian), and mips
(MIPS 32-bit, big-endian).
1 | GOOS=linux GOARCH=amd64 go build flysnow.org /hello |
上面命令生成linux 64位的程序。
除了GOOS和GOARCH常用,在实际开发中,对于开发出的程序会显示编译时间、go版本等属性,我们会用到用ldflags设置变量的值
1 | GOOS=linux GOARCH=amd64 go build -ldflags "-X 'main.BUILD_TIME=`date " +%F %T "`' -X 'main.GO_VERSION=`go version`'" . |
代码中需要引入变量
1 2 3 4 5 6 7 8 9 10 11 12 | var ( BUILD_TIME string GO_VERSION string ) func usage() { fmt .Fprintf(os.Stderr, `Options: Build Time: % v Go Version: % v `, BUILD_TIME, GO_VERSION) flag.PrintDefaults() } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
2017-02-14 django-pure-pagination 分页插件