找到这篇文章的你一定是看了SLAM14讲第五章来的,我解决这个问题大概用了三天。。
主流装PCL大概我总结了一下。可以看一下这里。
出现这个bug有两种可能。
1 .依赖缺少,在编译和安装时没有在urs/include/plcX.X目录下生成pcl_visualizer.h。
先去这个目录下看一下是否是这种情况,如果是,请按照我师哥的这篇文章重安装一边库和依赖,包括opencv和vtk。
之后重新解压你下载的PCL到一个新的文件夹,然后cmake走一走。
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON -DCMAKE_INSTALL_PREFIX=/usr ..
make
sudo make install
2.和我一样的奇特问题,原因大概是find函数不好使,所以我直接用绝对路径给出头文件,库文件地址。
cmake_minimum_required( VERSION 2.8 )
project( joinMap )
set( CMAKE_BUILD_TYPE Release )
set( CMAKE_CXX_FLAGS "-std=c++14 -O3" )
# opencv
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
# eigen
include_directories( "/usr/include/eigen3/" )
# pcl
find_package( PCL 1.9 REQUIRED COMPONENT common io )
include_directories( "/usr/include/pcl-1.9/" )
add_definitions( "/usr/share/pcl-1.9/" )
link_directories("/usr/lib/libpcl_common.so" "/usr/lib/libpcl_io.so")
list (REMOVE_ITEM PCL_LIBRARIES "vtkproj4")
add_executable( joinMap joinMap.cpp )
target_link_libraries( joinMap ${OpenCV_LIBS} ${PCL_LIBRARIES} )
效果如图,如果对你有用点个赞呗。