[英]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
)時,將發生鏈接器錯誤,指出Lib1
中缺少Lib2
符號。
有沒有一種方法可以在編譯Lib1
時“檢測”未解析的符號,而無Lib1
Exe
來獲取Lib1
未解析的符號的通知? 如果沒有,為什么?
假設您正在談論靜態庫,那么就沒有辦法這樣做。 靜態庫不相互鏈接。 鏈接器會依次在鏈接器命令行上列出的所有靜態庫中的可執行文件中查找找不到的符號。 如果它在靜態庫中找到未知符號,則會在其他靜態庫中查找,但是該過程由您鏈接的可執行文件(或DLL)驅動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.