编译依赖PCL的treeseg时找不到FLANN等PCL依赖库的原因是什么
问题原因
- 你编译PCL的时候,当时的运行环境已经加载了conda的路径配置,CMake能正常找到conda安装的FLANN。但PCL本身的配置文件不会保存这些依赖的安装路径,当其他项目调用PCL的配置文件时,它只会要求CMake在当前项目的搜索路径里重新找FLANN,不会继承你编译PCL时的路径。
- 你现在给treeseg跑CMake的时候,没有把conda依赖的安装路径加入CMake的搜索范围,所以找不到FLANN的配置文件。
修复方法
- 先激活你安装了FLANN等依赖的conda环境,再执行cmake命令,conda激活时通常会自动配置好CMake的搜索路径,多数情况下能直接解决问题。
- 如果激活conda后还是报错,可以手动指定conda环境的前缀路径,假设你的conda环境路径为
/home/users/pwilkes/miniconda3/envs/你的环境名,运行cmake时加上参数即可:
cmake .. -DCMAKE_PREFIX_PATH=/home/users/pwilkes/miniconda3/envs/你的环境名
- 你也可以直接修改treeseg的
CMakeLists.txt,在find_package(PCL)这一行之前添加路径配置:
set(CMAKE_PREFIX_PATH "/home/users/pwilkes/miniconda3/envs/你的环境名" ${CMAKE_PREFIX_PATH})
内容的提问来源于stack exchange,提问作者kungphil
相关产品推荐
相关产品推荐

