【问题标题】:Trace gcc linker linking process跟踪 gcc 链接器链接过程
【发布时间】:2024-01-03 18:13:01
【问题描述】:

如何跟踪 gcc ld 链接器的链接过程?我需要看看它如何与共享对象的功能联系起来。

【问题讨论】:

  • 您应该能够从生成的二进制文件中看到nm -Dobjdump -T
  • 我需要查看使用上述命令从生成的二进制文件中创建我可以看到的内容的过程。
  • gcc -v 有什么问题?这向您展示了 gcc 是如何调用 ld 的。
  • @TobySpeight gcc -v 没有显示链接编辑器实际使用的库以及它如何解析符号。
  • 啊,那么问题是关于ld 而不是gcc?标签有点误导。

标签: c gcc ld


【解决方案1】:

根据您所追求的,您可以将-Wl,--trace-Wl,--cref 传递给gcc,指示链接器打印有关链接过程的更多详细信息:

如果您对某个特定符号感兴趣,比如SYMBOL,您也可以试试-Wl,--trace-symbol,SYMBOL

(当然,这假设您使用的是 binutils ld。)

【讨论】: