当前位置: 首页 > 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.gsyq.cn/news/18951.html

相关文章:

  • 2025.10.10 图论
  • 基于LangChain 实现 Advanced RAG-后检索优化(上)-Reranker
  • 大模型在软件研发协同演进
  • NocoBase 走进德国大学课堂
  • 2025青海视频号运营最新推荐:创意内容与高效推广策略的完美
  • 详细介绍:构建生产级多模态数据集:视觉与视频模型(参照LLaVA-OneVision-Data和VideoChat2)
  • 公网服务器下的dify安装模型插件的相关问题和操作
  • 2025票务系统最新推荐榜:高效便捷与用户体验俱佳的优质选择
  • C#利用委托实现多个窗体间的传值
  • new操作符的手动实现
  • 关于HashMap
  • 2025 泰国立体/高位/仓储/托盘/重型/流利式/贯通式/穿梭车/模具货架厂家推荐排行榜:聚焦多场景存储需求,精选优质供应商!
  • 计划任务在不管用户是否登录都要运行时,bat不能正常运行处理办法
  • 2025 MVR/三效/多效/结晶/废水/降膜蒸发器厂家口碑推荐榜:聚焦多行业废水处理与物料浓缩解决方案!
  • mindie开启DeepSeek的128K
  • 微波雷达模块让广告灯告别无效展示
  • 为什么你的项目总是延期?90%的团队忽略了这5个预警信号
  • Salesforce项目老掉坑?这8个思维陷阱千万别踩
  • C#/.NET/.NET Core优秀项目和框架2025年9月简报
  • Alpha稳定分布概率密度函数的MATLAB实现
  • 激光打印机出现黑竖线,清理一下硒鼓即可
  • 2025 年最新推荐!国内软件开发厂商排行榜:政企定制开发优选指南 物联网软件开发/运维管理系统软件开发/仓储管理系统软件开发/人力资源管理系统软件开发公司推荐
  • 函数计算 MSE Nacos : 轻松托管你的 MCP Server
  • Metasploit Framework 6.4.92 (macOS, Linux, Windows) - 开源渗透测试框架
  • Python 处理 Word 文档中的批注(添加、删除) - E
  • 基于MATLAB的梯度下降法实现
  • Nexpose 8.23.0 for Linux Windows - 漏洞扫描
  • 2025 年房屋鉴定公司最新推荐权威榜单:涵盖安全评估 / 承载力 / 工程质量 / 危房 / 受损伤等领域,助您精准挑选靠谱机构
  • Mac端查词翻译工作流:基于欧路词典与Raycast
  • m3u8格式在直播场景中的应用