2012-07-24 54 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所在的同一文件夹中。

相关问题