Ubuntu14/16 PCL1.7/1.8 opencv2/3/4 编译安装共存

本文详细介绍了在Ubuntu环境下,如何从源码编译安装PCL 1.8和OpenCV 3.2,包括配置GPU支持、自定义安装路径及CMakeLists.txt配置,实现与系统原有版本共存。

为了使用cuda和pcl共同编程,而系统带的pcl1.7不带gpu模块,故编译安装pcl完全版,与系统pcl1.7共存,不同分发版本Ubuntu应该没有什么区别,不同版本pcl编译和使用道理也都基本相同,opencv也是一样的道理。

PCL 源码编译安装:

这里以pcl-1.8为例,其他版本可在GitHub上pcl代码仓库的release处下载源码。
从GitHub克隆源码,建立build文件夹准备编译:

git clone https://github.com/PointCloudLibrary/pcl.git
cd pcl
mkdir build
cd build

一般编译(然而我们不这么编译,看下一条):

cmake -DCMAKE_BUILD_TYPE=Release ..

指定gpu功能的编译,并指定安装文件位置为“/home/ziqi/pcl-1.8”:

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/ziqi/pcl-1.8 -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON ..

根据cpu核心数目不同,选择编译使用的-j选项,如使用6个核心编译:

make -j6

编译后安装到之前指定的文件夹(即“/home/ziqi/pcl-1.8”)

sudo make -j6 install
因为我们把pcl-1.8安装到了 “/home/ziqi/pcl-1.8”,所以任何程序调用pcl-1.8库,都要在CMakeLists.txt里设置PCLConfig.cmake这个文件所在目录,之后才能在CMakeLists.txt里面使用find_package(),其中,PCL_DIR的值是PCLConfig.cmake这个文件所在的目录。
set(PCL_DIR "/home/ziqi/pcl-1.8/share/pcl-1.8")
find_package(PCL 1.8 REQUIRED COMPONENTS)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

因为我们把pcl-1.8安装到了一个新的位置,没有覆盖安装系统原来的pcl-1.7,因此是可以共存的。使用源码编译安装的pcl-1.8的时候,只需要如上修改PCL_DIR即可。

cuda pcl混合编程的一个例子可以使用我测试使用的代码:测试代码

参考
https://www.vtk.org/Wiki/VTK/Building/Linux
http://blog.youkuaiyun.com/wanguku/article/details/60476469?readlog

opencv3.2&opencv3.2-contribute 源码编译安装:

下载源码,解压缩,比如解压后的文件夹为“opencv-3.2.0”:
建立build文件夹准备编译:

cd /opencv-3.2.0
rm -rf build
mkdir build
cd build

编译两个包,指明安装位置,默认为/usr/local,指明opencv3.2-contribute模块位置:

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_EXTRA_MODULES_PATH=path to opencv_contrib-3.2.0/modules/ ..

只编译opencv3.2:

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..

根据cpu核心数目不同,选择编译使用的-j选项,如使用6个核心编译:

make -j6

安装:

sudo make -j6 install
如果没有安装在默认/usr/local,比如安装在/usr/local/opencv320,则任何程序调用opencv库,都要在CMakeLists.txt里设置OpenCVConfig.cmake这个文件所在目录,之后才能在CMakeLists.txt里面使用find_package()。
set(OpenCV_DIR  "/usr/local/opencv320/share/OpenCV/")
find_package(OpenCV)
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIBRARY_DIRS})
add_definitions(${OpenCV_DEFINITIONS})

参考
http://blog.youkuaiyun.com/lql0716/article/details/54564721
https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html
https://www.pyimagesearch.com/2015/06/22/install-opencv-3-0-and-python-2-7-on-ubuntu

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值