我有一個框架(在C++中)依賴於一些第三方庫。當我編譯
庫
框架的靜態版本時,不需要額外的依賴關係,也就是說,不需要第三部分庫的lib
文件。當我編譯與DLL
相同的框架時,現在需要額外的依賴關係,否則我會遇到鏈接錯誤。我可以猜測爲什麼會發生這種情況,但希望得到一個具體的答案/解釋來理解正在發生的事情。沒有額外的依賴關係需要一個LIB,但需要的一個DLL
編輯:只是爲了澄清,我正在開發可以被編譯爲lib
並作爲dll
和然後在(N)使用(可執行的)項目的框架。將框架編譯爲lib
並使用第三方庫中的函數時,我不需要額外的依賴關係。但是,現在使用lib
文件(即框架)的項目必須包含第三方lib
文件。當我將框架編譯爲dll
時,它會給我提供鏈接錯誤,除非我指定了框架在技術上依賴的第三方庫。例如:我有幾個從Ogre3D內部調用功能的類。這些類被編譯爲lib
文件。編譯類lib
時,我不需要鏈接OgreMain.lib
。另一方面,當我編譯同一類的dll
版本時,我現在需要鏈接到OgreMain.lib
你是什麼意思附加的依賴? – 2010-09-11 15:49:32
也許我在誤讀某些東西,但我認爲Samaursa在編譯時特別要求這種情況,而不是要求確定運行時依賴關係。這聽起來像他有兩個配置的項目,「構建爲DLL」和「構建爲靜態DLL」。 – Dave 2010-09-11 17:04:28
這是正確的戴夫 – Samaursa 2010-09-11 20:24:00