我正试图安装Assimp以在我的项目中使用,但遇到了一些问题。我当前正在使用win 10 pro和visual studio 15 2017。
我已下载Assimp 4.0.1.zip,将其解压缩到一个目录中,加载了cmakeGui并运行了两次配置,然后生成到Assimp/build目录中。
接下来,我进入Assimp/build,运行了Assimp.sln并选择了ALL_BUILD,然后将与.lib和.dll一起的所有文件从/code/debug复制到了我的项目的Debug目录中,该目录是exe构建的位置。我将.lib复制到我的opengl/libs目录中,并将/include中的所有头文件从最初提取的下载中复制到我的opengl/includes/assimp目录中。
最后,我调整了项目的链接器设置以包括assimp.lib和assimp.dll(简化此帖子的别名)
当我尝试构建项目时,它说它无法打开dll,当我尝试实验时,我将dll复制到main.cpp和其他文件旁边的项目目录中并重新运行,这次它说“无效或损坏的文件:无法读取地址0x378”
可以肯定地说,我需要学习编译、链接和cmake,但现在我决定重新开始。
当我将头文件包含到我的项目中时,我认为它已经工作了(也许...)。为此,我重新开始,像以前一样构建Assimp,将所有与dll一起的文件移动到我的libs目录中,将下载的所有includes转储到我的includes中,还将config.h从构建中移动到此目录中。然后我在项目中设置了链接器设置,并未将任何内容移动到我的项目目录中。
之后,它停止了抱怨,所以我继续进行了我正在跟随的教程系列。我编译,在获得一堆错误后修复了它们,一直修复到0,然后突然又出现了8个新错误。
严重性 代码 描述 项目文件 行 抑制状态
错误 LNK2019 未解析的外部符号 _aiGetMaterialTextureCount 在函数 "public: unsigned int __thiscall aiMaterial::GetTextureCount(enum aiTextureType)const " (?GetTextureCount@aiMaterial@@QBEIW4aiTextureType@@@Z) 中被引用 opengl_model_loading F:\Desktop\MyDocuments\Tuts\opengl\getting started\opengl_model_loading\opengl_model_loading\main.obj 1这个错误让我感觉可能是由于dll文件引起的。请给予建议。
ASSIMP_BUILD_ZLIB
并禁用BUILD_SHARED_LIBS
。IrrXML.lib 和 zlibstaticd.lib (而不是 zlibd.lib)文件分别位于...\build\contrib\irrXML\Debug
和...\build\contrib\zlib\Debug
。 - JD80121