[英]How to check the static library dependencies in Windows?
我在一個大項目中有這樣的依賴:
MyEXE --> MyDLL --> MyStaticLib
這意味着我的可執行文件 ( MyEXE
) 依賴於 dll ( MyDLL
),而 dll 使用靜態庫 ( MyStaticLib
)。 問題是我可以從MyEXE
調用MyStaticLib
方法,它編譯和鏈接沒有任何問題。 我檢查了MyEXE
項目的 Visual Studio (2015) 上的鏈接器/輸入頁面,但我找不到MyStaticLib
作為MyStaticLib
的依賴項MyEXE
。
現在的問題是:
MyEXE
如何在沒有任何顯式依賴的情況下調用MyStaticLib
方法? 更新 1: MyStaticLib 的標題中沒有#pragma comment(lib, ...)
指令。 因此,不能使用此指令將靜態庫鏈接到 .exe。
MSVC 至少有一個隱式依賴機制,通過 #pragma comment(lib, ...) 指令完成。 檢查靜態庫的頭文件並確保沒有這樣的頭文件。
此外,如果使用通過“vcpkg”提供的靜態庫並且您已完成“vcpkg集成安裝”,則會將 MSBuild 文件添加到項目構建系統中,該文件會自動導入 vcpkg 生成的所有內容。
此外,link.exe 有一個 /VERBOSE:LIB 選項,它將打印出搜索到的庫,但它不會告訴您為什么將特定庫添加到構建中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.