设为首页收藏本站

点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区
查看: 1271|回复: 2

PCL_ONLY_CORE_POINT_TYPES编译选项

[复制链接]

96

主题

35

好友

1590

积分

金牌会员

Rank: 6Rank: 6

发表于 2015-6-16 15:06:55 |显示全部楼层
本帖最后由 guohaolys 于 2015-6-16 15:20 编辑

PCL_ONLY_CORE_POINT_TYPES选项会影响编译是支持的点的类型,如果设置为真,那就只支持核心的部分点云类型,就节省了编译时间,具体支持的类型看每个类的.cpp文件。不勾选,则会对方法支持的所有类型都进行编译。
所以在勾选了PCL_ONLY_CORE_POINT_TYPES时,有时会出现连接错误,即使你添加了正确的lib库。

理论上是这样,但是我查看cmake生成的pcl config.h文件里虽然没有定义这个PCL_ONLY_CORE_POINT_TYPES。。但vs的编译器却显示为真,大家有谁遇到过,指引下。我暂时为省事,就手动更改我缺少的那个几个类型,重新编译连接库即可解决。但比较麻烦。
下次发问题帖后,发链接到我们的讨论群(247215534)里,这样大家感兴趣的就可以来回复。
祝好运!!欢迎在PCL中国的社区分享自己领域相关的各种收集和知识。谢谢支持!!!
回复

使用道具 举报

96

主题

35

好友

1590

积分

金牌会员

Rank: 6Rank: 6

发表于 2015-6-16 20:51:52 |显示全部楼层
原来个定义,是通过最顶层的CMakeLists文件中,如图,对于MSVC来说从命令行添加一个预定义,可以通过打开工程属性下的PreprocessorDefinitions看到,有PCL_ONLY_CORE_POINT_TYPES。添加这个预定义是为了防止在msvc上库的上限问题https://github.com/PointCloudLibrary/pcl/issues/833
。有了这个预定义,其实很少编译很多内容,这也就造成了很多初级用户出现链接错误的原因。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册加入PCL中国点云技术相关产学研社区

下次发问题帖后,发链接到我们的讨论群(247215534)里,这样大家感兴趣的就可以来回复。
祝好运!!欢迎在PCL中国的社区分享自己领域相关的各种收集和知识。谢谢支持!!!
回复

使用道具 举报

96

主题

35

好友

1590

积分

金牌会员

Rank: 6Rank: 6

发表于 2015-6-16 20:56:11 |显示全部楼层
guohaolys 发表于 2015-6-16 20:51
原来个定义,是通过最顶层的CMakeLists文件中,如图,对于MSVC来说从命令行添加一个预定义,可以通过打开工 ...

对于出现这种链接错误的,有两种解决方案,一种就是我在第一个帖子提到的,重新编译链接更新链接的库。最简单的方式,就是将对应的hpp文件包含进来,也就是类似在编译PCL时,对选项 PCL_NO_PRECOMPILE进行了开启。
下次发问题帖后,发链接到我们的讨论群(247215534)里,这样大家感兴趣的就可以来回复。
祝好运!!欢迎在PCL中国的社区分享自己领域相关的各种收集和知识。谢谢支持!!!
回复

使用道具 举报

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

GMT+8, 2018-12-18 21:00 , Processed in 0.147649 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部