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

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

考虑一个名为 Exe 的可执行文件,它依赖于一个名为 Lib1 的静态库,而 Lib1 依赖于另一个名为 Lib2 的静态库,因此:

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

假设我从 Lib1 的附加库中删除了 Lib2。根据我的经验,Lib1 仍会编译,但是当我尝试编译 Exe(链接到 Lib1)时,将出现链接器错误,指出 Lib2 符号Lib1.

中缺少

有没有一种方法可以在编译 Lib1 时处理 "detect" 未解析的符号,而无需诉诸编译 Exe 来获得 Lib1 中未解析符号的通知?如果不是,为什么?

假设你说的是静态库,那就没办法了。静态库不会相互 link。 linker 在您在 linker 命令行上列出的所有静态库中依次查找在可执行文件中找不到的符号。如果它在静态库中找到未知符号,它会在其他静态库中查找,但该进程是由您正在 linking 的可执行文件(或 DLL)驱动的。