[英]Determine .lib / .dll with header file
我的程序中有3rd party庫。
例如 :
#INCLUDE <3rdPartyHeaderA.h>
#INCLUDE <3rdPartyHeaderB.h>
int main(int argc, char** argv)
{
// some stuff
}
我怎么知道3rdPartyHeaderA.h
正在使用哪個特定的.lib
或.dll
。 我查看了3rdPartyHeaderA.h
但沒有任何信息。
我問這個問題是因為我需要確定應該將哪個.lib
或.dll
添加到項目環境中,因為我不想添加所有這些。
這可能是一個愚蠢的問題。 如果是這樣,請隨意投票。 謝謝。
編輯 :感謝Wyzard澄清了我的問題。
它詢問如何確定在Foo.lib或Bar.lib(或Foo.dll或Bar.dll,或其他)中定義了3rdPartyHeaderA.h中聲明的函數。 –妖怪
除非您了解它們之間的相互依賴性,否則幾乎可以肯定必須將它們全部添加。 我不知道對此有何異議。
沒有自動的方法來“查找” lib與給定的標頭一起使用。 編譯時,鏈接器僅在一側進行所有函數調用,而在另一側進行所有庫調用並開始匹配。
以下是從最佳到最壞的標准解決方案:
閱讀您的圖書館隨附的文檔。 添加它告訴您的庫。 通常會有一些注釋或指令告訴您哪個庫導出哪些頭文件功能。
添加您可以找到的每個庫。 顯然,從3rdPartyHeader
附帶的庫開始,然后轉到標准庫。 繼續添加,直到編譯為止。 在這一點上不要擔心太多。 通常,將不使用的庫包括在內是安全的,因為鏈接程序根本不會在可執行文件中引入該代碼。
一旦您的程序可以使用一長串的庫進行編譯,就可以開始逐個刪除它們並嘗試重新構建。 如果您刪除xyz.lib
並且它仍然可以構建,則您不需要那個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.