2012-07-24 72 views
0

我告訴Visual Studio額外的庫目錄,並在額外的依賴關係中寫入.lib。 (是的,.lib,而不是.dll)。然後,所有的外部符號文件中的錯誤都消失了(有一些人之前),但隨後來此:Visual Studio,.dll找不到(從來沒有問過)

實際名稱和我到另外的依賴性說的是:assimp.lib

但是當我運行該程序,它說:一個依賴的DLL沒有被發現,並在消息框中,它說Assimp32.dll

而我從來沒有說過,包括一個DLL名稱,特別是該名稱,所以我非常困惑,如果我犯了一個錯誤,我已經檢查了好幾次,但看起來並不像。

回答

9

你已經通過鏈接到lib文件告訴你的應用程序使用DL​​L。您鏈接的文件不是static library。如在,它不包含所有的功能。

在這種情況下,它是一個import library(assimp.lib),其中包含入口點信息到DLL(assimp32.dll)。這就是爲什麼當你運行程序時,它仍然要求DLL。即使你可能認爲你沒有告訴你的程序這麼做。

+0

謝謝,接受答案。目前還不能接受答案... – 2012-07-24 20:34:34

+0

很高興你發現它有幫助。 – Bart 2012-07-24 21:01:01

+0

感謝您描述這一點 - 我非常困惑,因爲我提供了一個靜態庫與assimp.lib,但仍然看到「一個依賴的DLL沒有找到」。 – larsonmattr 2016-08-15 03:36:30

2

我下載了該庫的3.0版本,我可能會說Visual Studio的意思是說它的含義。 assimp--3.0.1270-sdk\lib\assimp_release-dll_win32中的assimp.lib的大小僅爲88 KB,因此它太小而無法包含諸如Open Asset Import Library之類的大型庫的所有代碼,而位於assimp--3.0.1270-sdk\bin\assimp_release-dll_win32中的Assimp32.dll的大小卻是6900 KB,所以這就是最好的選擇實際上位於。

結論:assimp.lib確實取決於Assimp32.dll,因此您應該複製並將Assimp32.dll保存在程序的.exe所在的同一文件夾中。

相關問題