初学PCL,在用CMAKE编译时报如下错误:
Could NOT find Boost CMake Error at /usr/lib/x86_64-linux-
gnu/cmake/pcl/PCLConfig.cmake:48 (message):
common is required but boost was not found
报错提示找不到boost库,然而我确实是已经安装了boost的。
查阅资料后,使用这篇博文中提到的方法,在 find_package(PCL REQUIRED) 语句前,添加以下语句,便不再报错。
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
ADD_DEFINITIONS(-DBoost_USE_STATIC_LIBS=ON)
set(Boost_INCLUDE_DIR /usr/include/)
set(Boost_LIBRARY_DIR /usr/lib/x86_64-linux-gnu/)
试验后发现,上面的语句中真正其作用的只有最后一句:
set(Boost_LIBRARY_DIR /usr/lib/x86_64-linux-gnu/)
其他的语句都可以删除,但删去最后一句的会报错。
这时,我猜测,之前报错的原因可能是boost环境变量设置不对的原因。查阅资料后发现,自己电脑上的boost与其他人的不太一样,大概是安装的时候没有装好。故重装了boost,重装后,即使不加上面那一语句,编译时也不会报错。问题解决。
总结:
- 方法一:在查找PCL库之前,也就是在find_package(PCL REQUIRED) 语句前添加下面的语句
set(Boost_LIBRARY_DIR /usr/lib/x86_64-linux-gnu/)
- 方法二:检查boost安装是否正确,环境变量是否设置正确。安装方法和参照这篇博客。