在使用PCL时,CMake如何找到vtk库目录

时间:2015-10-27 17:19:11

标签: c++ cmake vtk point-cloud-library

我正在使用cmake的项目结构,这有点不寻常。我的项目分为模块。每个模块都会生成一个对象库和一堆变量,这些变量包含将模块放在一起所必需的元信息。我遇到问题的是包含link_directories的库目录的那个。

在旧项目中有以下部分

find_package (PCL 1.7 REQUIRED COMPONENTS common io)
include_directories (${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions (${PCL_DEFINITIONS})

$ {PCL_LIBRARIES}的后续链接正常工作。链接描述文件正确包含对/usr/lib64/vtk/vtkSomeLibrary.so.1的引用。

然而,当我通过从另一个子目段调用find_package来消除副作用并且只使用给定的变量时,根本找不到pcl需要的vtk库。当我检查PCL_LIBRARY_DIRS时,我注意到它只包含/usr/lib64

所以我想也许VTKConfig.cmake实际上调用link_directories所以我检查了我的目录的LINK_DIRECTORIES属性。它只包含/usr/lib64

当我浏览VTKConfig.cmake脚本并意识到VTK_LIBRARY_DIRS从未实际设置时,这真的很奇怪。在旧项目中,我遇到正确路径(/usr/lib64/vtk)的第一个场合是在链接描述文件中。

这条道路来自哪里?在这一点上,我更感兴趣的是为什么旧项目确实有效,而不是为什么新项目没有。

编辑:我正在尝试使用pcl。这个需要。但是vtk。 pcl包还应包含vtk信息

0 个答案:

没有答案