0

我告诉 Visual Studio 额外的库目录,并将 .lib 写入额外的依赖项中。(是的,.lib,不是 .dll)。然后所有外部符号文件错误都消失了(之前有一些错误),但随后出现了:

实际名称和我对附加依赖项所说的内容是:assimp.lib

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

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

4

2 回答 2

9

您已经通过链接 lib 文件告诉您的应用程序使用 DLL。您链接的文件本身不是静态库。如,它不包含所有功能。

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

于 2012-07-24T20:30:07.237 回答
2

我下载了该库的 3.0 版,我可能会说 Visual Studio 确实如其所说。assimp.libin的大小assimp--3.0.1270-sdk\lib\assimp_release-dll_win32只有 88 KB,因此对于包含 Open Asset Import Library 之类的庞大库的所有代码来说太小了,而Assimp32.dllin的大小assimp--3.0.1270-sdk\bin\assimp_release-dll_win32则为 6900 KB,因此实际上是大多数好东西所在的位置。

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

于 2012-07-24T20:40:37.463 回答