vs2017 编译 assimp x64

工作中,需要用到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,这里有两个问题:

  1. 而找不到的文件没有d后缀
  2. vs2017用的c++是msvc141,而找不到的是vc140

所以说,这个库只测试了功能,没用为install做准备。
那么就行自己修改了:

  1. 删除d后缀,修改assimp代码目录/CMakeLists.txt
  SET(CMAKE_DEBUG_POSTFIX "" CACHE STRING "Debug Postfix for lib, samples and tools") # 原来是"d"
  1. 解决版本问题,修改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

你可能感兴趣的:(x64,assimp)