点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区

扫一扫,访问微社区

查看: 4294|回复: 1

今天被迫修改PCLConfig.cmake文件

[复制链接]
发表于 2013-10-4 04:11:40 | 显示全部楼层 |阅读模式
这个文件很重要,貌似和其他程序对应的findXXX.cmake功能相同,在自行编译安装PCL后会生成这个文件,并安装在C:\Program Files\PCL\cmake目录下。
对于常用cmake来建立工程的哥们来说,这个文件就很重要了,由于我编译时时所有模块全部选中的,但后面编译时simulation由于glew的不对,没成功编译。我也没改工程,直接手动修改了,工程的install和all build,使得可以安装成功。以为是万事大吉了。
结果测试的时候发现,采用cmake建立工程时,cmake就去安装路径下找PCLConfig.cmake文件了。从文件的脚步内容来看里面就是很多宏和存了用户cmake配置时的一些模块相关的变量等。
有这么一宏:
macro(pcl_report_not_found _reason)
  unset(PCL_FOUND)
  unset(PCL_LIBRARIES)
  unset(PCL_INCLUDE_DIRS)
  unset(PCL_LIBRARY_DIRS)
  unset(PCL_DEFINITIONS)
  if(PCL_FIND_REQUIRED)
    message(FATAL_ERROR ${_reason})
  elseif(NOT PCL_FIND_QUIETLY)
    message(WARNING ${_reason})
  endif()
  return()
endmacro(pcl_report_not_found)
由于我配置的真实编译之间的差错,搞的cmake直接最后生成的工程根本没有添加我需要的PCL相关的头文件和lib。CMakeLists.txt需要添加了头文件和lib都没成功,编译自然没成功了。
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
set(PCL_DIR "C:/Program\ Files/PCL/cmake/PCLConfig.cmake")
project(NV)
find_package(PCL 1.7)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(normal_EV normal_estimation_visual.cpp)
target_link_libraries(normal_EV ${PCL_COMMON_LIBRARIES} ${PCL_KDTREE_LIBRARIES} ${PCL_FEATURES_LIBRARIES} ${PCL_IO_LIBRARIES} ${PCL_IO_LIBRARIES} ${PCL_VISUALIZATION_LIBRARIES})
从错误提示,最后就找到这个文件了PCLConfig.cmake,直接把simulation相关的配置全删除掉。再使用cmake生成工程一个warning都没了。建工程编译没问题了。
折腾三个小时。写出来和大家分享下,要不就真的白折腾了。

回复

使用道具 举报

发表于 2013-10-5 10:06:10 | 显示全部楼层
谢谢楼主分享,我的还没编译出来的,好急,
回复 支持 反对

使用道具 举报

本版积分规则

QQ|小黑屋|点云技术相关产学研社区 ( 陕ICP备13001629号 )

GMT+8, 2024-5-20 00:08 , Processed in 1.309259 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表