我在我的電腦中用dll和.lib文件構建了VTK。當我想創建一個使用VTK的項目時,我必須在項目屬性中包含頭文件和鏈接.lib文件。另外,我還必須將.dll文件添加到項目路徑中。我對此有幾個問題,在Visual Studio中的靜態庫vs DLL
- .libs和.dll文件有什麼區別?
- 是否可以使用.dll或.lib文件創建項目。 (我可以鏈接.lib文件,而不是將dll添加到路徑或將dll添加到路徑而不鏈接.lib文件)?
我將不勝感激任何解釋。謝謝。
我在我的電腦中用dll和.lib文件構建了VTK。當我想創建一個使用VTK的項目時,我必須在項目屬性中包含頭文件和鏈接.lib文件。另外,我還必須將.dll文件添加到項目路徑中。我對此有幾個問題,在Visual Studio中的靜態庫vs DLL
我將不勝感激任何解釋。謝謝。
.lib文件被鏈接器用來解析導入的項目。 .dll文件包含在運行時動態加載的代碼。
如果您有一個靜態庫,它包含所有需要的代碼並且沒有.dll。如果你有一個.dll,你也需要配套的.lib來正確鏈接。
.lib文件僅在編譯期間由鏈接器使用。而.dll文件在執行期間由編譯的exe使用。換句話說,在編譯完程序後,你不再需要.lib文件。打包軟件進行分發時,您只需要.exe,.dll以及任何未被打包到exe中的資源。
您已經將VTK構建爲DLL項目。該DLL包含可執行代碼(和數據),並且LIB僅包含用於從DLL導出的地址修飾。如果沒有LIB,您需要手動加載DLL並手動修復您的調用。 –
相關:http://stackoverflow.com/a/7096229/214671 –