我正在尝试安装 Assimp 以在我的项目中使用,但遇到了一些麻烦。我目前使用的是 win 10 pro 和 Visual Studio 15 2017。
我已经下载了Assimp 4.0.1.zip,将其解压到一个目录中,加载cmakeGui并运行配置两次,然后生成到Assimp/build目录中。
接下来,我进入 Assimp/build,运行 Assimp.sln 并选择我认为是的 ALL_BUILD。然后,我复制了 /code/debug 中 .lib 和 .dll 旁边的所有文件,并将它们全部移到我的项目的 Debug 目录中,我的 exe 就是在该目录中构建的。我将 .lib 复制到 opengl/libs 目录中,并将 /include 中的所有标头从最初提取的下载内容复制到 opengl/includes/assimp 目录中。
最后,我调整了项目链接器设置以包含 assimp.lib 和 assimp.dll(为了简化本文的别名)
当我尝试构建项目时,它说无法打开 dll,在实验时,我将 dll 与 main.cpp 和其他文件一起复制到项目目录中,然后再次运行,这次它说“无效或损坏的文件:无法读取”在 0x378"
可以肯定地说,我需要学习编译、链接和 cmake,但现在我重新开始。
当我将标题包含到我的项目中时,我认为我已经让它停止抱怨了(也许我确实......)。为此,我从新构建的 Assimp 开始,与以前一样,将所有带有 dll 的文件移到我的 libs 目录中,将下载的所有包含文件转储到我的包含文件中,还将构建中的 config.h 移动到此目录中。然后我在项目中设置了链接器设置,并且没有将任何内容移动到我的项目目录中。
之后,它不再抱怨,所以我继续学习我正在遵循的教程系列。我进行了编译,发现了一大堆错误,将它们修复为 0,然后突然出现了 8 个新错误。
严重性代码 说明 项目文件行抑制状态
错误 LNK2019 函数“public: unsigned int __thiscall aiMaterial::GetTextureCount(enum aiTextureType)const”中引用了无法解析的外部符号 _aiGetMaterialTextureCount (?GetTextureCount@aiMaterial@@QBEIW4aiTextureType@@@Z) opengl_model_loading F:\Desktop\MyDocuments\Tuts\opengl\开始使用\opengl_model_loading\opengl_model_loading\main.obj 1
这个错误给我的感觉可能是由于dll造成的。
请指教。
我最近刚刚自己完成了这个工作,并且会说在 v401 方面遇到了很多麻烦,并且出现了错误或链接问题。成功地让我的工作与以下;
注意:ASSIMP 确实有 boost 作为依赖项。
- 从 github 下载/克隆 master Asset-Importer-Lib:https://github.com/assimp/assimp https://github.com/assimp/assimp
-
打开 Cmake GUI 并打开后:
- 源代码在哪里:“..\MyDocuments\assimp\assimp-master”
- 构建二进制文件的位置:“..\MyDocuments\assimp\assimp-master\build”。您需要创建一个构建文件夹并将 Cmake 指向它。
2.1.或者,如果您熟悉命令行选项:使用以下命令生成具有相关路径的项目文件
- cmake -G”Visual Studio 14 Win64”
- 单击配置。
- 然后生成。确保选择正确的构建选项,即 VS15 2017 64 位。
- 使用 Visual Studio 加载“..\MyDocuments\assimp\assimp-master\build\Assimp.sln”。
- 右键单击“ALL_BUILD”并选择“构建”。这将需要几分钟的时间。一旦完成并且没有错误,它应该在中创建必要的 *.dll/*.lib
..\MyDocuments\assimp\assimp-master\build\code\Debug
- 将相关的 *.lib 链接并包含到您现有的项目中
“..\MyDocuments\assimp\assimp-master\include\assimp”文件夹。您还需要确保 *.dll 文件与您正在运行的 *exe 位于同一文件夹中或包含在其中。
- 您可能还需要从 ..\MyDocuments\assimp\assimp-master\build\include\assimp\config.h 复制并将其包含在步骤 7 中。
只需确保您为代码构建正确的库,即 32/64 位/调试/发布/unicode/等,否则仍然可能遇到问题。
以下视频对于有视觉倾向的人很有用。https://youtu.be/W_Ey_YPUjMk https://youtu.be/W_Ey_YPUjMk
希望这可以帮助。
编辑:
如果您想要静态库版本,即不需要 .dll:
从上面的步骤可以看出:
5.1.将相关项目配置类型和扩展名从 .dll 更改为 .lib 类型(应该是两个:assimp 和 zlib)。
5.2.右键单击“UpdateAssimpLibsDebugSymbolsAndDLLs”->属性->构建事件并将命令行部分中的路径从 ..\Path*.dll 更新为 ..\Path*.lib。 (如果遇到错误,请在 assimp_cmd 项目上执行相同的操作)。
- 与上面相同,但现在还需要将您的项目链接到 IrrXML.lib 和 zlibd.lib。应该不再需要 *.dll 文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)