导航

【OpenGL】使用Assimp库踩坑记

Posted on 2024-02-14 02:39  Caiger  阅读(415)  评论(0编辑  收藏  举报

写在前面

  • 学习OpenGL- Model Loading这章,记下我为了能正常用上Assimp库踩的好几个坑。
  • 环境:
    • 操作系统:Win10
    • 工具:Visual Studio 2022,CMake-3.28.1,Assimp-5.3.1。

踩坑

  • 在CMake阶段生成的VS工程以下统称“VS中间工程”。
  • 在最后引用阶段的VS工程(就是用OpenGL画画的VS工程)以下统称“VS最终工程”。

下载阶段

  • Assimp源码在哪下载?——> 如下图,去“Tags”里翻要下载的版本,

  下图是5.3.1版本的下载内容:

 

CMake阶段

  • CMake配置里,其他配置默认不动,如果只打算用.lib而不是.dll,则BUILD_SHARED_LIBS不用打勾(这点在Assimp安装说明书有提到)。

  • 在VS中间工程中,生成解决方案时会有clipper.cpp乱码报错——“该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode格式以防止数据丢失”,

   具体乱码位置如下,删掉即可正常生成解决方案。

 

最后引用阶段

  • VS最终工程要用到两样东西,include文件夹和库文件:
    • include文件夹:要放Assimp自己的include文件夹和VS中间工程里的include文件夹(里边只有一个config.h),两者缺一不可,不然就会报无法打开某某头文件的错。
    • 库文件:除了要放Assimp库文件,还要放zlibstaticd库文件。因为我只放Assimp库文件时,运行VS时会报“无法解析的外部符号”错(如下图),

  网友回答可能是第三方插件zlip引用丢失的。在VS中间工程生成解决方案后,可以找到zlibstaticd库文件(如下图,我的VS中间工程叫assimp5.3.1_build2,Debug版本,只用静态库.lib)。

 

  • 不要忘记在“链接器”-“输入”加上新放的库。