assimp-vc140-mt.dll未找到。

4
我已经从http://assimp.sourceforge.net/main_downloads.html下载了Assimp项目。 Assimp发布图像 Assimp zip图像 我还从这个链接下载了cmake x86版本:https://cmake.org/download/ Cmake x86图像 我解压了两者,并在Assimp文件夹旁边创建了一个build文件夹。之后,我打开了命令提示符,将目录更改为所提到的build文件夹。我将cmake.exe的路径和Assimp文件夹的路径作为第一个参数输入到命令提示符中。然后在build文件夹中生成了Visual Studio解决方案。我在我的OpenGL项目中创建了一个Assimp文件夹,在这个Assimp文件夹中我创建了一个lib文件夹,并将所有内容从build/code/debug文件夹中放入其中,即:
assimp-vc140-mt.dll
assimp-vc140-mt.exp
assimp-vc140-mt.ilk
assimp-vc140-mt.lib
assimp-vc140-mt.pdb

接着我将下载的assimp文件夹中的include文件夹复制到之前提到的lib文件夹旁边。 现在我已经将所有的库和头文件都放到了我的openGl项目中。 我已经为我的openGl项目在visual studio中设置了额外的包含目录、附加库和附加依赖项。

在我的main.cpp文件中,我已经包含了以下这些头文件:

include "assimp/Importer.hpp"
include "assimp/scene.h"
include "assimp/postprocess.h"

我可以构建并运行我的项目。 但是当我在控制台出现后运行它,我立即收到这个错误:
assimp-vc140-mt.dll was not found

我不知道错误的来源在哪里,你有什么想法吗?
提前感谢您!

你是否将 assimp-vc140-mt.dll 放在与可执行文件相同的文件夹中? - drescherjm
1个回答

6

不要忘记,不是系统DLL的依赖DLL是从应用程序目录和当前目录加载的——对我来说,这听起来像你没有将assimp-vc140-mt.dll放在其中任何一个目录中。


好的,这很有帮助,谢谢。 你能告诉我为什么我必须将这个dll放入exe目录中,但我不必对glew、soil和其他库执行相同的操作吗?我在C++方面还很新,所以对于这个愚蠢的问题感到抱歉。 - Viktor Korai
glew 可以从一个适当的目录动态地链接到代码。对于隐式链接,DLLs 遵循Dynamic-Link Library Search Order。或者,您可以静态链接“其他库”,即它们的代码最终嵌入在生成的可执行文件中。 - CookiePLMonster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接