我正在尝试安装Assimp以在我的项目中使用,但是遇到了一些麻烦。我目前正在使用Win 10 Pro和Visual Studio 15 2017。
当我尝试构建项目时,它说它无法打开dll,并且当我尝试将dll与main.cpp和其他文件一起复制到项目目录中并再次运行时,这次它表示“无效或损坏的文件:无法读取在0x378“
可以肯定地说,我需要学习有关编译,链接和cmake的知识,但现在我重新开始。
当我将标题包含到项目中时,我不再提示它,我以为我已经开始工作了(也许我做了...)。为此,我从与以前相同的全新构建的Assimp开始,将带有dll的所有文件移动到我的libs目录中,将所有包含的内容从下载中转储到我的包含中,还将config.h从内部版本移至该目录中。然后,我在项目中设置了链接器设置,并且没有将任何内容移入我的项目目录。
在那之后,它不再提示了,所以我继续我所关注的教程系列。我编译了很多错误,将错误固定为0,然后突然我得到了8个新错误。
严重性代码说明项目文件行抑制状态
错误LNK2019无法解析的外部符号_aiGetMaterialTextureCount在函数“public:unsigned int __thiscall aiMaterial::GetTextureCount(enum aiTextureType)const”((?GetTextureCount @ aiMaterial @@ QBEIW4aiTextureType @@@@ Z)中引用入门\opengl_model_loading\opengl_model_loading\main.obj 1
这个错误给我的感觉可能是由于dll。
请指教。
最佳答案
我最近刚刚完成了此操作,并会说v401遇到了很多麻烦,出现了错误或链接问题。成功让我的与以下人员一起工作;
注意:ASSIMP确实具有boost作为依赖项。
https://github.com/assimp/assimp
2.1。或者,如果您熟悉命令行选项:使用以下命令生成具有相关路径的项目文件
..\MyDocuments\assimp\assimp-master\build\code\Debug
“..\MyDocuments\assimp\assimp-master\include\assimp”文件夹。您还需要确保* .dll文件与您正在运行的* exe位于同一文件夹中,或包含在其中。
只要确保您正在为代码构建正确的库即可,例如32/64bit/debug/release/unicode/etc,否则可能仍然遇到问题。
跟随视频对于视觉倾斜者很有用。
https://youtu.be/W_Ey_YPUjMk
希望这可以帮助。
编辑:
如果您需要静态库版本,即不需要.dll:
通过以上步骤:
5.1。将相关的项目配置类型和扩展名从.dll更改为.lib类型(应为两种:assimp和zlib)。
5.2。右键单击“UpdateAssimpLibsDebugSymbolsAndDLLs”->“属性”->“构建事件”,然后将命令行部分中的路径从..\Path * .dll更新到..\Path * .lib。 (如果遇到错误,请对assimp_cmd项目执行相同的操作)。