Visual Studio,.dll未找到(从未被要求)

时间:2012-07-24 20:24:39

标签: c++ visual-studio dll

我告诉Visual Studio额外的库目录,并在额外的依赖项中编写了.lib。 (是的,.lib,而不是.dll)。然后所有外部符号文件错误都消失了(之前有一些错误),但接下来是这样的:

实际名称和我对其他依赖项的说法是:assimp.lib

但是当我运行该程序时,它说:找不到依赖的dll,并在消息框中显示Assimp32.dll

我从来没有说过要包含一个dll名称,尤其是那个名字,所以我很困惑,如果我犯了错误,我已经多次检查过,但似乎不是。

2 个答案:

答案 0 :(得分:9)

您已通过链接lib文件告诉您的应用程序使用DL​​L。您要链接的文件不是static library。如同,它不包含所有功能。

在这种情况下,它是一个import library(assimp.lib),它包含DLL中的入口点信息(assimp32.dll)。这就是为什么当你运行程序时,它仍然要求一个DLL。即使你可能认为你没有告诉你的程序这样做。

答案 1 :(得分:2)

我下载了该库的3.0版本,我可能会说Visual Studio确实意味着它所说的内容。 assimp.libassimp--3.0.1270-sdk\lib\assimp_release-dll_win32的大小仅为88 KB,因此它太小而无法包含开放资产导入库等广泛库的所有代码,而Assimp32.dll的大小位于assimp--3.0.1270-sdk\bin\assimp_release-dll_win32 {1}}是整个6900 KB,所以这是最好吃的东西。

结论:assimp.lib确实依赖于Assimp32.dll,因此您应该复制并保留Assimp32.dll在程序的.exe所在的同一文件夹中。