动地科技登录网站温州商城网站建设
文章目录
- 1.安装新版本PCL-1.13
 - 2.在工程中使用新版本的PCL-1.13
 - 3.pcl-1.13误装到`/usr/local/`下如何卸载
 
1.安装新版本PCL-1.13
-  
下载PCL-1.13代码:

 -  
修改
CMakeLists.txt文件,不编译vtk相关的代码:vtk的问题比较难解决,但是一般我们安装pcl都是为了一些新特性的算法,而vtk就是可视化相关的,所以不要这部分也可以。,搜寻CMakeLists.txt中搜索vtk关键字,将有关vtk的都注释掉,再cmake,这样一来有关可视化的module就不会build了,也不需要依赖vtk。 
# Reset VTK_FOUND to off
# set(VTK_FOUND OFF)
# # Find VTK - VTK has to be found before Qt, otherwise it can overwrite Qt variables
# option(WITH_VTK "Build VTK-Visualizations" TRUE)
# if(WITH_VTK)
#   if(ANDROID)
#     message(WARNING "VTK is not supported on Android.")
#   else()
#     include("${PCL_SOURCE_DIR}/cmake/pcl_find_vtk.cmake")
#   endif()
# endif()
 
-  
新建安装路径:新建安装目录,
/home/cc/MyLibInstall/pcl-1.13。注意这里最好不要安装到系统根目录下,也就是默认的/usr/local/下,因为经过我测试发现在自己的电脑上,如果安装到了/usr/local/下,最后链接pcl的库的时候会默认链接到这个路径下的库,也就是自己新安装的pcl-1.13的库。但是绝大部分工程都是使用ROS自带的pcl-1.8的,这个时候虽然编译可以通过,但是运行的时候会出错。所以保险的方式就是不要安装到/usr/local/下,而是安装到自己的用户目录下,然后特殊的工程需要使用pcl-1.13的,那么就在CMakeLists.txt中手动指定PCL的路径;而其他的绝大多数工程使用PCL-1.8就不用动了,仍然会链接到ROS自带的pcl-1.8中。 -  
创建编译文件夹并
cmake:进入代码文件夹,mkdir build新建build文件夹。然后配置安装目录,即cmake -DCMAKE_INSTALL_PREFIX=/home/cc/MyLibInstall/pcl-1.13 ..,注意最后有个..,表示编译的CMakeLists.txt文件在当前build文件夹的上一层目录下。 -  
最后
make install即可:因为这里我们安装到用户家目录下的,而非根目录下,所以不用sudo。 
2.在工程中使用新版本的PCL-1.13
- 一般来说使用ROS自带的
pcl-1.18的时候都会使用如下命令: 
find_package(catkin REQUIRED COMPONENTSpcl_conversionspcl_ros
)
 
这样就会找的默认安装的pcl-1.8。
- 使用新版本的
pcl-1.13,则需要把上述的语句注释掉,然后手动寻找pcl的库。因此写成如下形式: 
find_package(catkin REQUIRED COMPONENTS# pcl_conversions# pcl_ros
)
set(PCL_DIR "/home/cc/MyLibInstall/pcl-1.13/share/pcl-1.13")   # PCLConfig.cmake所在的文件夹
find_package(PCL 1.13.0 REQUIRED)
 
这样后面就可以全部链接到pcl-1.13了,而不会链接到pcl-1.8。
3.pcl-1.13误装到/usr/local/下如何卸载
 
如果新版本pcl-1.13误装到/usr/local/下,其他工程都会优先链接到这个版本的pcl。此时可以参考这篇博客:linux删除cmake源码编译安装的库,删除安装的新版本pcl-1.13,然后按照前面的方法重新安装即可。
