Ubuntu18.04安装多个PCL(pcl-pcl-1.8.1+pcl-pcl-1.11.1
Ubuntu18.04安装多个PCL(pcl-pcl-1.8.1+pcl-pcl-1.11.1)
已经安装了pcl1.11.1
1. 安装mestlib
sudo apt install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev -y
sudo apt install libgl1-mesa-dev libglu1-mesa-dev -y
sudo apt install freeglut3-dev libboost-all-dev libeigen3-dev libflann-dev libglew-dev -y
sudo apt install libpcap-dev libusb-1.0-0-dev libopenni-dev libopenni2-dev clang-format libqhull-dev -y
./configure
make -j`nproc`
sudo make install
2.安装tk8.2.0
sudo rm -rf build
mkdir build
cd build
cmake ..
make -j`nproc`
sudo make install
3.安装pcl1.11.1
sudo rm -rf build
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/pcl_1_11_1 -DCMAKE_BUILD_TYPE=None -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON ..
make -j`nproc`
sudo make install
安装pcl1.8.1
将BUILD_examples=OFF关闭了后面会报错
sudo rm -rf build
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/pcl_1_8_1 -DCMAKE_BUILD_TYPE=None -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=OFF ..
make -j`nproc`
sudo make install
报错1
/home/kezunlin/program/pcl-1.8.1/examples/segmentation/example_cpc_segmentation.cpp:493:17: error: ‘class vtkUnsignedCharArray’ has no member named ‘InsertNextTupleValue’
colors->InsertNextTupleValue (color);
解决
将BUILD_examples=OFF
报错2
invalid use of incomplete type ‘class vtkTexture’ vtk_tex->SetInputConnection (jpeg_reader->GetOutputPort ())
解决
在vtk的头文件中搜索到了vtkTexture.h,直接在pcl源文件中添加该头文件
报错3
error: invalid conversion from ‘int’ to ‘const char*’ [-fpermissive] vtk
解决
在CMakeLists中添加
SET(CMAKE_CXX_FLAGS " -fpermissive ${SSE_FLAGS_STR}")
参考:https://blog.csdn.net/weixin_44401286/article/details/113696161
错误4
actor->GetMapper ()->ImmediateModeRenderingOn ()的相关问题
直接注释源文件相关代码
多版本切换
set(PCL_DIR "/usr/local/pcl_1_8_1")
find_package(PCL 1.9 REQUIRED COMPONENTS)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINATIONS})
测试CMakeLists找pcl
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(pcl_test)
find_package(PCL 1.8.1 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
find_package(VTK REQUIRED)
find_package(VTK 6.3 REQUIRED)
MESSAGE( STATUS "VTK_VERSION = ${VTK_VERSION}.")
message(STATUS "VTK_MAJOR_VERSION ${VTK_MAJOR_VERSION}, rendering backend: ${VTK_RENDERING_BACKEND}")
SET(HELLO "Hello World")
MESSAGE( STATUS "Hello = ${HELLO}.")
MESSAGE( STATUS "PCL_FOUND = ${PCL_FOUND}.")
MESSAGE( STATUS "PCL_INCLUDE_DIRS = ${PCL_INCLUDE_DIRS}.")
MESSAGE( STATUS "PCL_LIBRARIES = ${PCL_LIBRARIES}.")
MESSAGE( STATUS "PCL_LIBRARY_DIRS = ${PCL_LIBRARY_DIRS}.")
MESSAGE( STATUS "PCL_VERSION = ${PCL_VERSION}.")
MESSAGE( STATUS "PCL_COMPONENTS = ${PCL_COMPONENTS}.")
MESSAGE( STATUS "PCL_DEFINITIONS = ${PCL_DEFINITIONS}.")