Linux下是否有类似MSVC链接器/VERBOSE选项的替代方案?
Linux链接器追踪函数链接解析的替代选项
在Linux下,不同链接器(ld/lld/gold/mold)都提供了替代MSVC /VERBOSE 的选项,用来追踪单个函数的链接解析过程,明确库被链接的原因:
GNU ld(ld.bfd)
- 使用
-Wl,-t或-Wl,--trace:输出链接过程中每个符号的解析来源,包括提供该符号的库文件路径。 - 若需更详细信息(如符号的节、偏移),可组合使用
-Wl,-d,-t,-d会强制输出所有未定义符号的解析流程。
- 使用
LLD
- 支持
-Wl,-t/-Wl,--trace,效果与GNU ld一致。 - 精准追踪单个函数:使用
-Wl,--trace-symbol=目标函数名,比如-Wl,--trace-symbol=my_func,仅输出该函数符号的链接解析信息,避免冗余输出。
- 支持
Gold链接器
- 同样支持
-Wl,-t/-Wl,--trace,以及-Wl,--trace-symbol=目标函数名来定向追踪特定符号。
- 同样支持
mold链接器
- 兼容
-Wl,-t和-Wl,--trace-symbol=目标函数名,输出简洁直观,可直接看到符号对应的库文件。
- 兼容
这些选项能帮你清晰定位每个函数符号的来源库,从而理解某个库被纳入链接的原因,和MSVC /VERBOSE 的核心作用一致。如果只关注特定函数,--trace-symbol 会比全量的 -t 更高效。
内容的提问来源于stack exchange,提问作者Ofek Shilon
相关产品推荐
相关产品推荐

