写在前面
- 在学习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)。
- 不要忘记在“链接器”-“输入”加上新放的库。