工作中,需要用到assimp,之前编译过的。
但这次换vs2017编译assimp x64后,出现问题。
BlendDNA: Did not find a field named `flags` in structure
上网查了很久,就是一句,换新新版本。
然后我上assimp官网,最新的是assimp 4.1.0,我用的就是4.1.0,还以为是库停更了。
赶紧上github上搜下,发现库在持续更新。但最新的5.0.0.rc
我想了想直接clone了最新的代码。
使用master的代码,编译正常。
高潮来了!这不是release分支,所以会有问题,问题很奇葩。
link时说找不到 assimp-vc410-mt.lib
。
我按debug编译的,编译出的文件是assimp-vc141-mtd.lib
,这里有两个问题:
- 而找不到的文件没有
d
后缀 - vs2017用的c++是msvc141,而找不到的是
vc140
。
所以说,这个库只测试了功能,没用为install做准备。
那么就行自己修改了:
- 删除
d
后缀,修改assimp代码目录/CMakeLists.txt
SET(CMAKE_DEBUG_POSTFIX "" CACHE STRING "Debug Postfix for lib, samples and tools") # 原来是"d"
- 解决版本问题,修改
assimp代码目录/assimpTargets-debug.cmake.in
elseif( MSVC14 )
set(MSVC_PREFIX "vc141") # 原来是vc140
修改assimp代码目录/assimpTargets-release.cmake.in
elseif( MSVC14 )
set(MSVC_PREFIX "vc141") # 原来是vc140
到此,可正常使用assimp