1.fatal error: ‘vtkSmartPointer.h’ file not found
这里是因为没有找到vtk这个库。
将find_package(PCL REQUIRED COMPONENTS COMMON IO)
改成
find_package(PCL REQUIRED COMPONENTS common io)
,这里是要区分大小写的。
2.Undefined symbols for architecture x86_64
这种错误的原因是没有正确连接到库文件。
方法:将target_link_libraries(main ${PCL_LIBS} )
改成target_link_libraries(main ${PCL_LIBRARIES} )
分别将$PCL_LIBS和$PCL_LIBRARIES打出来,发现$PCL_LIBS是空的,$PCL_LIBRARIES才是存储库文件路径的变量,和一般的$XXX_LIBS是不一样的。
所以有时候不确定大小写或者XXX_LIBS和XXX_LIBRARIES那个值才是正确的时候,最好查看一下相关类的XXXConfig.cmake文件里面的定义。