Alembic 编译之Error: ilmbase libraries (Half, Iex, IlmThread, Imath) not found

  1. 首先,查阅资料发现,编译Alembic需要OpenEXR的环境:https://blog.csdn.net/weixin_34370347/article/details/91595191
  2. 关于OpenEXR的配置方法可以参考这一篇:https://blog.csdn.net/liyilong1993/article/details/109441212
  3. 插一句,如果遇到 “EIGEN3_INCLUDE_DIR-NOTFOUND” 的错误的话,就需要配置EIGEN3的环境变量,查看cmake文件会发现,这个变量使用的环境变量名称是“EIGEN3_ROOT_DIR”,因此要以这一变量去设置EIGEN3的位置。此外,cmake使用的地址都是 “/” 而不是 “\”,虽然也能识别,不过为了避免奇怪的错误最好还是使用 “/” 。(EIGEN3官网下)。
    如果还是不行的话也可以试试在CMakeLists和FindEigen3的开头都添加下面这两句话
    set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
    include_directories($ {EIGEN3_INCLUDE_DIRS})
  4. 再插一句,如果遇到 “ILMBASE_ROOT-NOTFOUND” 的话同样要设置环境变量,不过这时又会出现 “For compatibility, CMake is ignoring the variable” 的警告。这个警告其实并不会有影响,如果想避免的话,也可以直接在cmake文件中赋值:

    SET(ILMBASE_ROOT  ".../libs-x64/ilmbase")
  5. 再再插一句,使用CMake总是反复出错的时候,最好先试一试 File - Delete Cache,然后重新Configure。如果添加或修改了环境变量的话,就重启一遍软件,并记得用管理员模式打开。
  6. 成功配置好ilmbase、zlib和openexr后,使用CMake检查时还是会出现 “ilmbase libraries (Half, Iex, IlmThread, Imath) not found” 的错误。没办法,只能再次去读cmake文件,然后就会发现以下两个问题:
  7. 其一,如果在生成ilmbase的工程文件时自定义了文件夹,那么显然cmake是找不到的。所以可以在_ilmbase_SEARCH_DIRS变量中添加要搜索的位置,或者直接将生成文件拷贝到ilmbase文件夹内。
  8. 其二,FindIlmBase.cmake中定义的要搜索的文件是(Half, Iex, IlmThread, Imath),但是ilmbase生成的dll文件实际上都会带一个版本号的后缀 “-2_2”,因此只要将这个后缀删掉与cmake文件保持一致就可以了。之所以不是修改cmake文件是因为那样会很麻烦。为了避免其他错误最好两个名称的文件都留着。
  9. 然后Alembic终于编译成功。

 

唉,这年头想当个伸手党都如此困难,我cmake算是成功入坟了。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值