我告诉Visual Studio额外的库目录,并在额外的依赖项中编写了.lib。 (是的,.lib,而不是.dll)。然后所有外部符号文件错误都消失了(之前有一些错误),但接下来是这样的:
实际名称和我对其他依赖项的说法是:assimp.lib
但是当我运行该程序时,它说:找不到依赖的dll,并在消息框中显示Assimp32.dll
我从来没有说过要包含一个dll名称,尤其是那个名字,所以我很困惑,如果我犯了错误,我已经多次检查过,但似乎不是。
答案 0 :(得分:9)
您已通过链接lib文件告诉您的应用程序使用DLL。您要链接的文件不是static library。如同,它不包含所有功能。
在这种情况下,它是一个import library(assimp.lib),它包含DLL中的入口点信息(assimp32.dll)。这就是为什么当你运行程序时,它仍然要求一个DLL。即使你可能认为你没有告诉你的程序这样做。
答案 1 :(得分:2)
我下载了该库的3.0版本,我可能会说Visual Studio确实意味着它所说的内容。 assimp.lib
中assimp--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所在的同一文件夹中。