文章目录
- 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 COMPONENTS
pcl_conversions
pcl_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
,然后按照前面的方法重新安装即可。