我刚刚安装了pcl,并希望运行文件夹/pcl-pcl-1.7.1/examples中的示例。每个不同的例子都有CMakeLists.txt,所以我想我只是做一个cmake。在终端后跟make进行编译。 在终端做完之后我得到了
CMakeLists.txt中的CMake警告(dev): 没有cmake_minimum_required命令。一行代码,例如
cmake_minimum_required(VERSION 2.8)
所以我查看了cmake文件,奇怪的是这些cmake文件没有正常的cmake布局;以cmake_minimum_required(VERSION 2.8 FATAL_ERROR)开头,然后是其他一些东西。 我调查的CMakeLists.txt文件看起来像:
PCL_ADD_EXAMPLE(pcl_example_fast_point_feature_histograms FILES example_fast_point_feature_histograms.cpp
LINK_WITH pcl_common pcl_kdtree pcl_search pcl_features pcl_io)
PCL_ADD_EXAMPLE(pcl_example_normal_estimation FILES example_normal_estimation.cpp
LINK_WITH pcl_common pcl_kdtree pcl_search pcl_features pcl_io)
PCL_ADD_EXAMPLE(pcl_example_point_feature_histograms FILES example_point_feature_histograms.cpp
LINK_WITH pcl_common pcl_kdtree pcl_search pcl_features pcl_io)
PCL_ADD_EXAMPLE(pcl_example_principal_curvatures_estimation FILES example_principal_curvatures_estimation.cpp
LINK_WITH pcl_common pcl_kdtree pcl_search pcl_features pcl_io)
PCL_ADD_EXAMPLE(pcl_example_shape_contexts FILES example_shape_contexts.cpp
LINK_WITH pcl_common pcl_kdtree pcl_search pcl_features pcl_io)
PCL_ADD_EXAMPLE(pcl_example_spin_images FILES example_spin_images.cpp
LINK_WITH pcl_common pcl_kdtree pcl_search pcl_features pcl_io)
PCL_ADD_EXAMPLE(pcl_example_rift_estimation FILES example_rift_estimation.cpp
LINK_WITH pcl_common pcl_kdtree pcl_search pcl_features pcl_io)
PCL_ADD_EXAMPLE(pcl_example_difference_of_normals FILES example_difference_of_normals.cpp
LINK_WITH pcl_common pcl_kdtree pcl_search pcl_features pcl_io pcl_segmentation pcl_sample_consensus)
我不太了解cmake,但我知道它从定义内容开始。 所以我的问题是我现在如何编译这些pcl示例?或者cmake文件有什么不同吗?
答案 0 :(得分:0)
CMake允许将构建版本拆分为多个不同的CMakeLists.txt
文件,这些文件不一定必须自行运行。
在您的情况下,项目可能会使用CMakeLists.txt
中pcl-pcl-1.7.1
的{{3}}来包含examples
中的CMakeLists.txt
。 examples
中的CMakeLists.txt
不完整,不能单独运行,只有在作为顶级CMake文件的一部分时才会运行。
您现在有两个选择:
examples
来添加{{1}}中的一个。实现这一目标的最简单方法可能是从pcl随附的顶级文件开始,然后抛弃您不需要的所有内容。根据该文件中存在的CMake-voodoo的数量,您可能需要调整很多才能使其工作。答案 1 :(得分:0)
您可以通过两种方式编译示例。
1)更改CMakeLists.txt,取消注释行
### --- [设置示例
包含(" $ {PCL_SOURCE_DIR} /cmake/pcl_examples.cmake")强>
2)如果您已经构建了一次pcl,只需转到构建目录中的CMakeCache.txt文件并进行以下更改。
BUILD_examples:BOOL = <强>打开
然后就这样做
make