【问题标题】:How to handle with 'Policy CMP0074 is not set' error while using Cmake to build PCL tutorials?使用 Cmake 构建 PCL 教程时如何处理“未设置策略 CMP0074”错误?
【发布时间】:2019-06-13 18:12:14
【问题描述】:

我想完成这个基础教程。

http://pointclouds.org/documentation/tutorials/writing_pcd.php#writing-pcd

它非常简单。当我准备 cmakelist 和 .cpp 文件时,我用 cmake gui 运行它们,我得到了这个错误。我安装了 pcl 1.9.1,所以我为 Visual Studio 2017 64x 构建文件。

选择 Windows SDK 版本 10.0.17134.0 以面向 Windows 10.0.17763。 C 编译器标识为 MSVC 19.15.26726.0 CXX 编译器标识为 MSVC 19.15.26726.0 检查工作 C 编译器:C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe 检查工作的 C 编译器:C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe --works Detecting C compiler ABI info Detecting C compiler ABI info - done Detecting C compile features Detecting C compile features - done 检查工作的 CXX 编译器:C:/Program Files (x86)/Microsoft 视觉的 Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe 检查工作的 CXX 编译器:C:/Program Files (x86)/Microsoft 视觉的 Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe --works Detecting CXX compiler ABI info Detecting CXX compiler ABI info - done Detecting CXX compile features Detecting CXX compile 功能 - 在 CMakeLists.txt:5 完成 CMake 警告(开发) (find_package):未设置策略 CMP0074:find_package 使用 _ROOT 变量。运行“cmake --help-policy CMP0074” 政策细节。使用 cmake_policy 命令设置策略并 禁止显示此警告。

环境变量PCL_ROOT设置为:

C:\libraries\PCL 1.9.1

为了兼容性,CMake 忽略了该变量。这个警告是 对于项目开发人员。使用 -Wno-dev 来抑制它。

找到特征:C:/libraries/PCL 1.9.1/3rdParty/Eigen/eigen3 Eigen 找到(包括:C:/libraries/PCL 1.9.1/3rdParty/Eigen/eigen3,版本: 3.3.5) 寻找 pthread.h 寻找 pthread.h - 未找到 找到线程:TRUE 找到提升:C:/libraries/PCL 1.9.1/3rdParty/Boost/include/boost-1_68(找到合适的版本“1.68.0”,最低要求是“1.40.0”)找到的组件:系统 文件系统线程 date_time iostreams 序列化 chrono atomic 正则表达式找到 FLANN: C:/libraries/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s.lib 找到 FLANN(包括:C:/libraries/PCL 1.9.1/3rdParty/FLANN/include,lib: 优化;C:/库/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s-gd.lib) 找到 FLANN(包括:C:/libraries/PCL 1.9 .1/3rdParty/FLANN/include,库: 优化;C:/库/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s-gd.lib) 找到 OpenNI2: C:/libraries/OpenNI2/Lib/ OpenNI2.lib OpenNI2 找到(包括: C:/libraries/OpenNI2/包含,库: C:/libraries/OpenNI2/Lib/OpenNI2.lib) OpenNI2 找到(包括: C:/libraries/OpenNI2/包含,库: C:/libraries/OpenNI2/Lib/OpenNI2.lib) 找到 Qhull: 优化;C:/库/PCL 1.9.1/3rdParty/Qhull/lib/qhullstatic.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Qhull/lib/qhullstatic_d.lib QHULL(包括:C:/libraries/PCL 1.9.1/ 3rdParty/Qhull/包括,库: 优化;C:/库/PCL 1.9.1/3rdParty/Qhull/lib/qhullstatic.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Qhull/lib/qhullstatic_d.lib) 寻找 PCL_COMMON 发现 PCL_COMMON: C:/libraries/PCL 1.9。 1/lib/pcl_common_release.lib
寻找 PCL_KDTREE 找到 PCL_KDTREE: C:/libraries/PCL 1.9.1/lib/pcl_kdtree_release.lib 寻找 PCL_OCTREE 找到 PCL_OCTREE: C:/libraries/PCL 1.9.1/lib/pcl_octree_release.lib
寻找 PCL_SEARCH 找到 PCL_SEARCH: C:/libraries/PCL 1.9.1/lib/pcl_search_release.lib 寻找PCL_SAMPLE_CONSENSUS 找到PCL_SAMPLE_CONSENSUS: C:/libraries/PCL 1.9.1/lib/pcl_sample_consensus_release.lib 寻找 PCL_FILTERS 找到 PCL_FILTERS: C:/libraries/PCL 1.9.1/lib/pcl_filters_release.lib 寻找 PCL_2D 找到 PCL_2D: C:/libraries/PCL 1.9.1/include/pcl-1.9 寻找 PCL_GEOMETRY 找到 PCL_GEOMETRY: C:/libraries/PCL 1.9.1/include/pcl-1.9 寻找 PCL_IO 找到 PCL_IO:C:/libraries/PCL 1.9.1/lib/pcl_io_release.lib 寻找 PCL_FEATURES 找到 PCL_FEATURES: C:/libraries/PCL 1.9.1/lib/pcl_features_release.lib 寻找 PCL_ML 找到 PCL_ML: C:/libraries/PCL 1.9.1/lib/pcl_ml_release.lib 寻找 PCL_SEGMENTATION 找到 PCL_SEGMENTATION: C:/libraries/PCL 1.9.1/lib/pcl_segmentation_release.lib 寻找PCL_VISUALIZATION 找到PCL_VISUALIZATION: C:/libraries/PCL 1.9.1/lib/pcl_visualization_release.lib 寻找 PCL_SURFACE 找到 PCL_SURFACE: C:/libraries/PCL 1.9.1/lib/pcl_surface_release.lib 寻找 PCL_REGISTRATION 找到 PCL_REGISTRATION: C:/libraries/PCL 1.9.1/lib/pcl_registration_release.lib 寻找PCL_KEYPOINTS 找到PCL_KEYPOINTS: C:/libraries/PCL 1.9.1/lib/pcl_keypoints_release.lib 寻找 PCL_TRACKING 找到 PCL_TRACKING: C:/libraries/PCL 1.9.1/lib/pcl_tracking_release.lib
寻找 PCL_RECOGNITION 找到 PCL_RECOGNITION: C:/libraries/PCL 1.9.1/lib/pcl_recognition_release.lib 寻找 PCL_STEREO 找到 PCL_STEREO: C:/libraries/PCL 1.9.1/lib/pcl_stereo_release.lib
寻找 PCL_OUTOFCORE 找到 PCL_OUTOFCORE: C:/libraries/PCL 1.9.1/lib/pcl_outofcore_release.lib 寻找 PCL_PEOPLE 找到 PCL_PEOPLE: C:/libraries/PCL 1.9.1/lib/pcl_people_release.lib 找到 个人电脑: pcl_common;pcl_kdtree;pcl_octree;pcl_search;pcl_sample_consensus;pcl_filters;pcl_io;pcl_features;pcl_ml;pcl_segmentation;pcl_visualization;pcl_surface;pcl_registration;pcl_keypoints;pcl_tracking;pcl_recognition;pcl_stereo;pcl_outofcore;pcl_people/PCL;优化;C:/li 1.9.1/3rdParty/Boost/lib/libboost_system-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_system-vc141-mt-gd-x64-1_68.lib;优化;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_filesystem-vc141-mt-x64-1_68.lib;调试;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_filesystem-vc141-mt-gd-x64-1_68.lib;优化;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_thread-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_thread-vc141-mt-gd-x64-1_68.lib;优化;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_date_time-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_date_time-vc141-mt-gd-x64-1_68.lib;优化;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_iostreams-vc141-mt-x64-1_68.lib;调试;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_iostreams-vc141-mt-gd-x64-1_68.lib;优化;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_serialization-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_serialization-vc141-mt-gd-x64-1_68.lib;优化;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_chrono-vc141-mt-x64-1_68.lib;调试;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_chrono-vc141-mt-gd-x64-1_68.lib;优化;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_atomic-vc141-mt-x64-1_68.lib;调试;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_atomic-vc141-mt-gd-x64-1_68.lib;优化;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_regex-vc141-mt-x64-1_68.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Boost/lib/libboost_regex-vc141-mt-gd-x64-1_68.lib;优化;C:/libraries/PCL 1.9.1/3rdParty/Qhull/lib/qhullstatic.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/Qhull/lib/qhullstatic_d.lib;C:/libraries/OpenNI2/Lib/OpenNI2.lib;优化;C:/libraries/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s.lib;debug;C:/libraries/PCL 1.9.1/3rdParty/FLANN/lib/flann_cpp_s-gd.lib;vtksys;vtkCommonCore;vtkCommonMath ; vtkCommonMisc; vtkCommonSystem; vtkCommonTransforms; vtkCommonDataModel; vtkCommonColor; vtkCommonExecutionModel; vtkCommonComputationalGeometry; vtkFiltersCore; vtkFiltersGeneral; vtkImagingCore; vtkImagingFourier; vtkalglib; vtkFiltersStatistics; vtkFiltersExtraction; vtkInfovisCore; vtkFiltersGeometry; vtkFiltersSources; vtkRenderingCore; vtkzlib; vtkfreetype; vtkRenderingFreeType; vtkRenderingContext2D; vtkChartsCore; vtkDICOMParser; vtklz4 ;vtkIOCore;vtkIOLegacy;vtkexpat;vtkIOXMLParser;vtkDomainsChemistry;vtkIOXML;vtkParallelCore;vtkFiltersAMR;vtkFiltersFlowPaths;vtkFiltersGeneric;vtkImagingSources;vtkFiltersHybrid;vtkFiltersHyperTree;vtkImagingGeneral;vtkFiltersImaging;vtkFiltersModelingvtkFilters; rsParallel; vtkFiltersParallelImaging; vtkFiltersPoints; vtkFiltersProgrammable; vtkFiltersSMP; vtkFiltersSelection; vtkFiltersTexture; vtkFiltersTopology;判决; vtkFiltersVerdict; vtkmetaio; vtkjpeg; vtkpng; vtktiff; vtkIOImage; vtkImagingHybrid; vtkInfovisLayout; vtkInteractionStyle; vtkImagingColor; vtkRenderingAnnotation; vtkRenderingVolume; vtkInteractionWidgets; vtkViewsCore; vtkproj4; vtkGeovisCore; vtkhdf5_hl; vtkhdf5; vtkIOAMR; vtkIOEnSight; vtkNetCDF; vtkexoIIc; vtkIOExodus; vtkRenderingOpenGL; vtkRenderingContextOpenGL; vtkgl2ps; vtkRenderingGL2PS; vtklibharu; vtkIOExport; vtkRenderingLabel; vtkIOExportOpenGL; vtkIOGeometry; vtkIOImport; vtklibxml2; vtkIOInfovis; vtkIOLSDyna; vtkIOMINC; vtkoggtheora; vtkIOMovie; vtknetcdfcpp; vtkIONetCDF; vtkIOPLY;vtkjsoncpp;vtkIOParallel;vtkIOParallelXML;vtksqlite;vtkIOSQL;vtkIOTecplotTable;vtkIOVideo;vtkImagingMath;vtkImagingMorphological;vtkImagingStatistics;vtkImagingStencil;vtkInteractionImage;vtkRenderingVolume;vtkRenderingLIC;vtkRenderingLOD视图vtkRenderingLODv; 2D;vtkViewsInfovis (要求至少版本“1.2”)配置完成生成完成

构建后,当我点击打开项目并运行它时,我得到了这个错误。

有什么解决办法吗?

【问题讨论】:

  • 提问时,所有相关细节都必须在问题中(链接失效)并且应该是文本(图像被many things 渲染为无法使用)。
  • 最好/首选复制并粘贴错误消息的文本而不是 GUI 的图片。
  • 第二条错误消息是用户错误。 ALL_BUILD 目标不是可执行目标,因此您无法运行或调试它。其目的是强制构建解决方案中的所有项目。选择一个可执行项目作为你的启动项目来解决这个问题。
  • @user4581301 抱歉我没有足够的积分来发图
  • @drescherjm 抱歉,我对此非常缺乏经验。我没明白你的意思

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


【解决方案1】:

CMP0074 警告并不是您作为用户真正需要担心的问题。这是对 CMakeLists.txt 的开发人员的警告,即 CMake 中的行为已更改。

https://cmake.org/cmake/help/latest/policy/CMP0074.html

现在在 CMake 3.12 及更高版本中使用 find_package() 命令 搜索 _ROOT CMake 变量指定的前缀 和 ROOT 环境变量。包根是 维护为堆栈,因此嵌套调用所有 find* 里面的命令 find 模块也搜索根作为前缀。该政策提供 与尚未更新的项目的兼容性,以避免使用 _ROOT 变量用于其他目的。

此策略的旧行为是忽略 _ROOT 变量。此政策的新行为是使用 _ROOT 变量。

基本上,警告是CMakeLists.txt 的开发人员尚未设置策略以启用新行为或保留旧行为,但定义了PCL_ROOTCMake 不会自动使用它,因为没有启用新的行为。

ALL_BUILD 错误消息是因为ALL_BUILD 目标/项目不是可执行目标。其目的是强制构建解决方案中的所有项目。要修复该部分,您需要右键单击Solution Explorer 中的可执行项目/目标,然后单击“将此项目设置为启动项目”

【讨论】:

  • 此政策在下一版本 1.10.0 中明确设置,因此不会再弹出此特定警告。
猜你喜欢
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 2014-12-19
  • 2010-12-07
  • 1970-01-01
  • 2016-03-25
  • 1970-01-01
相关资源
最近更新 更多