如何在Visual Studio中的库编译时间中获取链接器错误

How to get linker errors at library compile-time in Visual Studio?

本文关键字:时间 获取 链接 错误 编译 Visual Studio      更新时间:2023-10-16

考虑一个称为 Exe的可执行文件,该可执行文件取决于称为 Lib1的静态库,而 Lib1依赖于另一个称为 Lib2的静态库,so:

Exe -> Lib1 -> Lib2  (where '->' marks dependency)

假设我从Lib1的其他库包含物中删除Lib2。根据我的经验,Lib1仍将编译,但是当我尝试编译Exe(链接到Lib1(时,会发生链接错误,指出Lib2符号从Lib1中缺少。

在编译Lib1时无需诉诸于编译Exe即可通知Lib1中未解决的符号时,是否有一种方法可以"检测"未解决的符号?如果没有,为什么?

假设您在谈论静态库,则没有办法这样做。静态库不会互相链接。链接器在链接器命令行中列出的所有静态库中的可执行文件中寻找符号。如果它在静态库中找到一个未知的符号,则在其他静态库中查看,但是该过程是从链接的可执行文件(或dll(驱动的。