You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取Go目标归档中的目标文件或直接生成非归档格式目标文件?

解决Go目标文件分析的问题

1. 直接编译为原生ELF目标文件

Go的compile工具默认生成包含包元数据的归档格式文件,若要直接输出可被readelf、objdump识别的原生ELF目标文件,添加-c参数即可:

go tool compile -c -o test.o test.go

此时生成的test.o就是对应平台的标准ELF格式,可直接用系统工具分析。

2. 提取Go归档内容的其他方式

除了go tool pack x提取所有归档成员外,还可以:

  • 查看归档内的成员列表:
    go tool pack p test.o
    
  • 仅提取指定成员(比如只提取_go_.o):
    go tool pack e test.o _go_.o
    

需要注意的是,默认归档中的_go_.o是Go内部的中间目标格式,并非原生ELF,仍只能用go tool objdump这类Go专属工具处理,若要兼容系统工具,优先使用上述-c参数的编译方式。

内容的提问来源于stack exchange,提问作者Frixos Kallenos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:57:51