参考文章: http://stackoverflow.com/questions/11354518/golang-application-auto-build-versioning
昨天在查询怎么生成一个小体积的golang程序的时候,无意中发现这个文章.
对于固定的代码,及固定的golang版本,下面的命令总是得到一模一样的程序
go build
有时候需要为每个编译都打上标记,不然真的很乱啊
演示用的golang代码
package main
var _VERSION_ = "unknown"
func main() {
print("http_su ver=" + _VERSION_ + "\n")
}
编译时,加入需要的版本号信息,而不是直接去改main.go的源码
export TAG=v1.b.50
go build -ldflags "-X main._VERSION_ '$TAG'"
运行结果:
> go build
> ./demo
http_su ver=unknown
> export TAG=v.1.b.50
> go build -ldflags "-X main._VERSION_ '$TAG'"
> ./demo
http_su ver=v.1.b.50
可以看到, 版本号根据编译参数的变化而变化了. 关键点是, 必须是 $package.$varName
本demo在linux/macos/windows/arm下测试通过.
作者:翁志艺
分享到:
相关推荐
Golang,通常简称为Go,是由Google开发的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言。Go语言的设计目标是提高开发效率和程序性能,因此它是构建高效、可靠和可扩展的软件的理想选择。Go-Goca利用了...
在编译Go程序时,Go编译器将源代码编译为机器无关的中间字节码,再通过运行时系统将其转换为机器码执行。这个过程中,类型检查器(type checker)和语法分析器(parser)是编译过程中的关键组件。类型检查器确保了...
综上所述,"惜时光微信小程序后端API GoLang版"是一个采用Go语言开发的微信小程序后端服务,它涵盖了微信小程序的API设计、数据库交互、安全性控制、调试测试等多个方面,体现了Go语言在构建高性能后端服务方面的...
微信小程序的开发离不开WXML(微信标记语言)、WXSS(微信样式表)、JavaScript以及后端服务的支持,而Golang的高并发和安全特性使得它非常适合作为后端服务的开发语言。 在构建电子商务系统时,我们通常需要考虑...
Golang还支持跨平台编译,这意味着你可以在一个平台上编写代码,然后在另一个平台上编译和运行,这为跨平台的软件开发提供了极大的便利。 Golang的并发模型是基于CSP(Communicating Sequential Processes)理论的...
本文将深入探讨一个名为Go-Globe的项目,这是一个利用Golang(Go语言)实现的地球线框可视化库。通过学习和理解Go-Globe,我们可以提升在数据可视化、Web应用开发以及3D图形处理方面的技能。 首先,让我们了解一下...
而golang,也就是通常所说的Go语言,它是一个高性能、静态类型、编译型语言,由Google开发,广泛用于系统编程,因其简洁、安全、性能高效等特点,在后端开发领域中占据重要地位。 文件名称列表中的文件主要分为配置...
Golang,又称Go语言,是Google开发的一种静态类型、编译型语言,它具有高性能、简洁语法以及强大的并发处理能力等特性。因此,从给出的文件列表中我们可以推断出这是一套与Golang相关的项目资源。接下来,我们将详细...
Golang_Puzzlers-春节主题资源是一个关于Golang编程语言的专题资源包,它不仅涵盖了这一编程语言的某些难题,还融入了中国春节的文化元素,为学习和使用Golang的开发者们提供了一个别具一格的学习体验。资源包中包含...
Golang(又称Go语言)是一种静态类型、编译型语言,由Google开发。它是一种用于构建简单、可靠、高效的软件的语言。Golang以其简洁、快速、安全的特点,在软件开发领域中获得了广泛的认可。尤其是在并发编程方面,Go...
综合来看,这个压缩包为学习者提供了实践前端和Golang技术的平台,涵盖了从基础到进阶的各种概念,有助于提升全栈开发能力。通过分析和运行这些代码,学习者能够加深对Web开发流程的理解,提高实际开发中的问题解决...
4. 实现AR功能,可能涉及到标记检测、追踪、3D渲染等技术,使用户可以通过摄像头看到叠加在现实世界上的虚拟信息。 总的来说,这个项目展示了如何将先进的计算机视觉技术与移动端开发平台相结合,以创建具有创新...
Go-ljgo 是一个基于 Go 语言构建的静态博客生成工具,它以其简洁的设计、快速的编译速度和易于安装的特点,为用户提供了便捷的博客搭建体验。在 Go 语言的支持下,ljgo 能够充分发挥 Go 的并发优势和高效的编译特性...
虽然Hugo自身已经很强大,但它的插件系统允许开发者通过编写Go程序来扩展其功能。例如,可以通过编写插件实现自定义的短代码,以增强Markdown的表达能力。 7. **社区支持与文档** Hugo有一个活跃的开发者社区,...
Go语言(通常称为Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。从2012年发布第一个稳定版本开始,Go语言得到了广泛的应用。特别是Go语言的垃圾回收(GC)机制,它是编程...