链接器抱怨在使用 PCL 时缺少 vtkCommon

Linker complains about missing vtkCommon when using PCL

我尝试在 macOS 10.13.5 unsing 自制软件上进行 pcl 设置 运行。

我尝试使用 brew install pclbrew install --build-from-source pcl

这两种技术来安装 pcl

作为依赖项 vtk (8.1.1) 是自动安装的,我可以看到这些库安装在 /usr/local 中。

但是在链接阶段我得到以下错误:

ld: library not found for -lvtkCommon
clang: error: linker command failed with exit code 1 (use -v to see invocation)

如果我检查已安装库的列表,我可以验证没有 vtkCommon 只有 vtkCommonCore

在 CMake 中,我使用以下行来包含 PCL,vtkCommon 出现在 ${PCL_LIBRARIES} 变量中。

find_package(PCL REQUIRED COMPONENTS filters surface kdtree features segmentation)
list(APPEND include_directories ${PCL_INCLUDE_DIRS})
list(APPEND used_libraries  ${PCL_LIBRARIES})

有谁知道为什么会发生这种情况以及如何解决?

正如@Tsyvarev 所提到的,问题是不匹配 PCLConfig.cmake 与正确的 PCLConfig.cmake 并存,删除不正确的就解决了问题。