当前位置: 首页 > news >正文

go读取二进制文件编译信息

诉求

希望了解二进制文件编译时的信息

本地

可以通过go version -m ./binary查看:

$ go version -m ./go-pprof-practice 
./go-pprof-practice: go1.24.2path	github.com/wolfogre/go-pprof-practicemod	github.com/wolfogre/go-pprof-practice	v0.0.0-20230706085634-23c8f603cac9+dirty	build	-buildmode=exebuild	-compiler=gcbuild	DefaultGODEBUG=asynctimerchan=1,gotestjsonbuildtext=1,gotypesalias=0,httplaxcontentlength=1,httpmuxgo121=1,httpservecontentkeepheaders=1,multipathtcp=0,netedns0=0,panicnil=1,randseednop=0,rsa1024min=0,tls10server=1,tls3des=1,tlsmlkem=0,tlsrsakex=1,tlsunsafeekm=1,winreadlinkvolume=0,winsymlink=0,x509keypairleaf=0,x509negativeserial=1,x509rsacrt=0,x509usepolicies=0build	CGO_ENABLED=1build	CGO_CFLAGS=build	CGO_CPPFLAGS=build	CGO_CXXFLAGS=build	CGO_LDFLAGS=build	GOARCH=amd64build	GOOS=linuxbuild	GOAMD64=v1build	vcs=gitbuild	vcs.revision=23c8f603cac9cde2cf7533287fc2091c37dc024fbuild	vcs.time=2023-07-06T08:56:34Zbuild	vcs.modified=true

网络

对于在线服务,希望将编译信息封装成api便于确认版本。

package mainimport ("fmt""runtime/debug""github.com/gin-gonic/gin"
)func Info(c *gin.Context) {info, ok := debug.ReadBuildInfo()if !ok {c.JSON(500, gin.H{"error": "no build info available"})return}buildInfo := make(map[string]string)for _, setting := range info.Settings {buildInfo[setting.Key] = setting.Value}c.JSON(200, buildInfo)
}func main() {router := gin.Default()router.GET("/info", Info)fmt.Println("Server starting on :8080")router.Run(":8080")
}

参考

Go1.18 新特性:编译后的二进制文件,将包含更多信息
debug package - runtime/debug - Go Packages

http://www.hskmm.com/?act=detail&tid=28784

相关文章:

  • 2025锯床厂家最新推荐榜:精准切割与高效性能的行业首选!
  • 2025.10.10 图论
  • xshell把界面转发到xming
  • 使用AI创建angular项目
  • 大模型在软件研发协同演进
  • NocoBase 走进德国大学课堂
  • 2025青海视频号运营最新推荐:创意内容与高效推广策略的完美
  • 008_函数
  • 内存分析记录
  • 详细介绍:构建生产级多模态数据集:视觉与视频模型(参照LLaVA-OneVision-Data和VideoChat2)
  • 2025 年图书杀菌机生产厂家最新推荐排行榜:聚焦高效杀菌技术与优质服务,优质企业全面盘点自助图书/臭氧图书/消毒图书/图书杀菌机厂家推荐
  • 公网服务器下的dify安装模型插件的相关问题和操作
  • vscode 生成代码片段
  • MySQL根据表生成实体类
  • 2025票务系统最新推荐榜:高效便捷与用户体验俱佳的优质选择
  • 【黑马python】基础 3.Python 判断语句 if-else
  • 有度新版本:反向登录、文件路径自定义、有度极速版…管理更自主,切换更顺畅
  • C#利用委托实现多个窗体间的传值
  • 2025常州微弧氧化批发厂家最新推荐榜:技术领先与优质服务双
  • new操作符的手动实现
  • JS使用Regex校验出现卡顿
  • 2025舒适轮胎厂家最新推荐榜:静音耐磨,驾驶体验再升级!
  • 2025 净化铝型材十大品牌之一优选,推荐龙新铝业,最快24小时内发货
  • 手写Promise
  • 双列集合
  • 二项式反演
  • 2025 权威推荐!净化铝型材品牌 TOP5 排行榜:实力厂家精选,品质之选不容错过
  • 关于HashMap
  • sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一。
  • 车辆主动悬架线性最优控制(LQR)系统