点云库从入门到精通 第五章3 pcl_visualizer_demo Ubuntu16.04

刚接触C++和PCL很多东西都不懂,如有不对的地方还请各位大神不吝赐教
一开始编译结果为
pcl_visualizer_demo解决undefined reference to ‘boost::this_thread::hiden::sleep_until(timespec const$

In function ‘boost::this_thread::sleep(boost::posix_time::ptime const&)’:

error: undefined reference to ‘boost::this_thread::hiden::sleep_until(timespec const$)’

error: collect2: error:ld returned 1 exit status

但是我已经成功编译boost并且CMakeLists.txt如下:

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)

project(pcl_visualizer_viewports)

find_package(PCL 1.2 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})

link_directories(${PCL_LIBRARY_DIRS})

add_definitions(${PCL_DEFINITIONS})

add_executable (pcl_visualizer_demo pcl_visualizer_demo.cpp)

target_link_libraries (pcl_visualizer_demo ${PCL_LIBRARIES})

查了很多资料死活找不到原因

期间还运行了如下代码

sudo apt-get install libpcl-dev pcl-tools

后来鬼使神差地把源代码重新解压了一遍,并放在 下载 中,再次编译同一个项目3 pcl_visualizer_demo得到的编译结果为:

No rule to make target '/usr/lib/x86_64-linux-gnu/libproj.so

解决方法为:
sudo ln -s /usr/lib/x86_64-linux-gnu/libproj.so.9 /usr/lib/x86_64-linux-gnu/libproj.so

接着继续编译,得到的结果为:

cannot find -lvtkproj4

解决方法为将CMakeLists.txt修改为如下:

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)

project(pcl_visualizer_viewports)

find_package(PCL 1.2 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})

link_directories(${PCL_LIBRARY_DIRS})

add_definitions(${PCL_DEFINITIONS})

list(REMOVE_ITEM PCL_LIBRARIES “vtkproj4”)

add_executable (pcl_visualizer_demo pcl_visualizer_demo.cpp)

target_link_libraries (pcl_visualizer_demo ${PCL_LIBRARIES})

继续编译后成功
pcl_visualizer_demo解决undefined reference to ‘boost::this_thread::hiden::sleep_until(timespec const$

到现在我认为的原因是在修改CMakeLists.txt文件后应该重新编译,删除build文件后再次编译(不知道到底是不是这个原因,之前都是在Qt creator里修改CMakeLists.txt,保存后就直接编译了。

但是至于为什么一开始编译会出现

In function ‘boost::this_thread::sleep(boost::posix_time::ptime const&)’:

error: undefined reference to ‘boost::this_thread::hiden::sleep_until(timespec const$)’

error: collect2: error:ld returned 1 exit status

还是一头雾水,唯一的区别就是我把代码放在 下载 里,然后重新编译了一下,神奇。

虽然这次幸运地编译成功了,但是还是想知道具体的原因是啥,如果你也遇到和我一样的问题,也·可以试着解决一下,更希望能得到各位大神的指点,感激不尽!

相关文章:

  • 2022-01-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-10
  • 2021-09-14
  • 2021-09-02
  • 2022-12-23
  • 2021-12-11
  • 2021-05-23
相关资源
相似解决方案