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

为了使用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_DEFINATIONS})

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

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

参考
https://www.vtk.org/Wiki/VTK/Building/Linux
http://blog.csdn.net/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_DEFINATIONS})

参考
http://blog.csdn.net/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

你可能感兴趣的:(linux,pcl)