如何配置Microsoft链接器link.exe使其输出实际链接的全部库列表
配置link.exe打印所有链接库完整列表的方法
要让Microsoft链接器link.exe输出实际链接的所有库(包括默认自动链接的C运行时库、系统默认依赖库、手动指定的附加库)的完整列表,核心是开启链接器的库相关详细日志,具体操作按使用场景分三种:
- 直接调用link.exe做链接时,给link.exe传
/VERBOSE:LIB参数即可。
不要用无参数的/VERBOSE,那个会输出全量链接过程冗余信息,/VERBOSE:LIB会专门过滤输出库搜索、库加载的相关日志,信息更精准。执行后控制台会按顺序打印所有库的搜索路径、匹配结果,其中标记为Loaded <库全路径>的就是最终实际链接进二进制文件的库。 - 通过cl.exe一步完成编译+链接时,在cl命令末尾加上
/link /VERBOSE:LIB,参数会自动透传给后端调用的link.exe。示例命令:
执行后同样会在控制台输出完整的库链接日志。cl main.c /link /VERBOSE:LIB - 在Visual Studio IDE中编译项目时,按以下路径配置:
右键目标项目 → 打开「属性」页 → 定位到「配置属性 → 链接器 → 命令行」→ 在「附加选项」输入框中填入/VERBOSE:LIB,保存配置后重新生成项目,所有库链接信息会直接输出到VS的「输出」面板的生成日志中。
补充校验方式:如果需要静态留存链接结果做交叉校验,可以额外给link.exe传
/MAP:output_map.txt参数,链接完成后会在输出目录生成对应map文件,文件中也会记录所有实际链接的库、关联符号的对应信息。
注意日志中标记为Searching xxx.lib的是链接器搜索过但未实际使用的库,不要和最终加载的库混淆。
内容的提问来源于stack exchange,提问作者rwallace
相关产品推荐
相关产品推荐

