C++ PCL生成错误:架构x86_64@PCL的未定义符号

C++ PCL生成错误:架构x86_64@PCL的未定义符号,c++,point-cloud-library,C++,Point Cloud Library,使用cmake时没有错误 按以下方式制作时出错: Scanning dependencies of target environment [ 25%] Building CXX object CMakeFiles/environment.dir/src/environment.cpp.o [ 50%] Building CXX object CMakeFiles/environment.dir/src/render/render.cpp.o [ 75%] Building CXX object

使用cmake时没有错误

按以下方式制作时出错:

Scanning dependencies of target environment
[ 25%] Building CXX object CMakeFiles/environment.dir/src/environment.cpp.o
[ 50%] Building CXX object CMakeFiles/environment.dir/src/render/render.cpp.o
[ 75%] Building CXX object CMakeFiles/environment.dir/src/processPointClouds.cpp.o
[100%] Linking CXX executable environment
Undefined symbols for architecture x86_64:
  "pcl::visualization::createLine(Eigen::Matrix<float, 4, 1, 0, 4, 1> const&, Eigen::Matrix<float, 4, 1, 0, 4, 1> const&)", referenced from:
      bool pcl::visualization::PCLVisualizer::addLine<pcl::PointXYZ, pcl::PointXYZ>(pcl::PointXYZ const&, pcl::PointXYZ const&, double, double, double, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) in render.cpp.o
  "pcl::visualization::PCLVisualizer::removeShape(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)", referenced from:
      clearRays(boost::shared_ptr<pcl::visualization::PCLVisualizer>&) in render.cpp.o
  "pcl::visualization::PCLVisualizer::updateCells(vtkSmartPointer<vtkIdTypeArray>&, vtkSmartPointer<vtkIdTypeArray>&, long long)", referenced from:
...
...
...
...
_main in environment.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [environment] Error 1
make[1]: *** [CMakeFiles/environment.dir/all] Error 2
make: *** [all] Error 2
OS 麦克卡塔里纳 PCL 1.9 xcode


这个问题应该与cmakelists.txt有关,比如库链接,但是我没有任何想法来定位和修复它

通过链接库解决:

find_package(PCL 1.3 REQUIRED COMPONENT common io VISUALIZATION)

target_link_libraries (environment ${PCL_LIBRARIES} ${PCL_COMMON_LIBRARIES} ${PCL_IO_LIBRARIES} ${PCL_VISUALIZATION_LIBRARIES})
find_package(PCL 1.3 REQUIRED COMPONENT common io VISUALIZATION)

target_link_libraries (environment ${PCL_LIBRARIES} ${PCL_COMMON_LIBRARIES} ${PCL_IO_LIBRARIES} ${PCL_VISUALIZATION_LIBRARIES})