PCL1.8的那些坑!各种编译及使用问题汇总

2023-11-15

   在win10上用vs2013编译及使用pcl180遇见了各种坑,这里做个汇总,既是总结,也希望能给后来人引路!

1.编译到visualization模块的时候,会有如下语句报错:

if (!pcl::visualization::getColormapLUT (static_cast<LookUpTableRepresentationProperties>(value), table))
    break;

解决方案:
将所有的

static_cast<LookUpTableRepresentationProperties>(value)

修改成

static_cast<LookUpTableRepresentationProperties>(int(value))

2.编译官方教程中ICP例子时,出现下列错误:

error C4996: 'pcl::SAC_SAMPLE_SIZE': This map is deprecated and is kept only to prevent breaking existing user code. Starting from PCL 1.8.0 model sample size is a protected member of the SampleConsensusModel class

解决方案
打开项目属性页->C/C+±>常规->SDL检查(设置为否)
在这里插入图片描述
若上面的方案无法解决这个错误,可以打开头文件“model_types.h”,修改其中的代码:
源码:

namespace pcl
{
  const static std::map<pcl::SacModel, unsigned int>
      PCL_DEPRECATED("This map is deprecated and is kept only to prevent breaking "
      "existing user code. Starting from PCL 1.8.0 model sample size "
      "is a protected member of the SampleConsensusModel class")
  SAC_SAMPLE_SIZE (sample_size_pairs, sample_size_pairs + sizeof (sample_size_pairs) / sizeof (SampleSizeModel));
}

修改后:

namespace pcl
{
  const static std::map<pcl::SacModel, unsigned int>
      //PCL_DEPRECATED("This map is deprecated and is kept only to prevent breaking "
      //"existing user code. Starting from PCL 1.8.0 model sample size "
      //"is a protected member of the SampleConsensusModel class")
  SAC_SAMPLE_SIZE (sample_size_pairs, sample_size_pairs + sizeof (sample_size_pairs) / sizeof (SampleSizeModel));
}

重新编译即可解决问题

3.错误信息

conditional_euclidean_clustering.obj : error LNK2001: 无法解析的外部符号 "public: void __cdecl pcl::ConditionalEuclideanClustering<struct pcl::PointXYZINormal>::segment(class std::vector<struct pcl::PointIndices,class std::allocator<struct pcl::PointIndices> > &)" (?segment@?$ConditionalEuclideanClustering@UPointXYZINormal@pcl@@@pcl@@QEAAXAEAV?$vector@UPointIndices@pcl@@V?$allocator@UPointIndices@pcl@@@std@@@std@@@Z)
1>conditional_euclidean_clustering.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __cdecl pcl::NormalEstimation<struct pcl::PointXYZI,struct pcl::PointXYZINormal>::computeFeature(class pcl::PointCloud<struct pcl::PointXYZINormal> &)" (?computeFeature@?$NormalEstimation@UPointXYZI@pcl@@UPointXYZINormal@2@@pcl@@MEAAXAEAV?$PointCloud@UPointXYZINormal@pcl@@@2@@Z)
1>E:\VisualStudio2013Project\PCLConsoleApplication\x64\Release\ConditionalEuclideanClustering.exe : fatal error LNK1120: 2 个无法解析的外部命令

在所有库都配置的情况下,若出现上述问题
解决方法
打开项目属性页>C/C++>预处理器,添加:

_CRT_SECURE_NO_WARNINGS

4.错误信息

e:\shizhenwei\vs2013projects\testicp1\testicp1\main.cpp(39): error C4996: 'pcl::Registration<PointSource,PointTarget,Scalar>::setInputCloud': [pcl::registration::Registration::setInputCloud] setInputCloud is deprecated. Please use setInputSource instead.
1>          with
1>          [
1>              PointSource=pcl::PointXYZ
1>  ,            PointTarget=pcl::PointXYZ
1>  ,            Scalar=float
1>          ]
1>          d:\clibrary\pcl1.8.0\pcl1.8.0x86\include\pcl-1.8\pcl\registration\registration.h(183) : 参见“pcl::Registration<PointSource,PointTarget,Scalar>::setInputCloud”的声明
1>          with
1>          [
1>              PointSource=pcl::PointXYZ
1>  ,            PointTarget=pcl::PointXYZ
1>  ,            Scalar=float
1>          ]

解决办法:

    //icp.setInputCloud(cloud_in);
    icp.setInputSource(cloud_in);

5.计算法线时使用OpenMP加速问题
正确的头文件应该是 #include <pcl/features/impl/normal_3d_omp.hpp>

总结
在VS中编译开源库的工程,产生的问题可能五花八门,但其问题提示是比较清楚的,根据提示解决可以以不变应万变。实在解决不了,也可以问问度娘或google,正所谓内事不决问百度,外事不决问google

参考链接:
https://blog.csdn.net/wokaowokaowokao12345/article/details/51287011
https://blog.csdn.net/Linear_Luo/article/details/52658984

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PCL1.8的那些坑!各种编译及使用问题汇总 的相关文章

随机推荐

  • Airbnb深度学习在搜索领域的探索总结

    今天的博客主要参考了Airbnb发表的paper Applying Deep Learning To Airbnb Search 这篇paper介绍了近2年Airbnb在搜索场景下所使用模型的演进路线 以及一些失败的总结和经验的总结 最难能
  • 常用的渗透测试工具之 SQLMap

    web安全攻防 第三章学习之SQLmap SQLMap介绍 SQLMap是自动化的SQL注入工具 主要功能是扫描 发现并利用URL的SQL注入漏洞 内置了很多绕过插件 SQLMap采用了五种独特的SQL注入技术 如下 1 基于布尔类型的盲注
  • maven deploy 遇到 “方法不会覆盖或实现超类型的方法” 不要慌

    思考问题 这个bug看的我莫名其妙 看名字也看不懂说的啥 在网上看到说什么把 Override去掉就行了什么 我就觉得很奇怪 跟这个能有什么关系呢 网上既然说是跟 Override有关 那么这应该是是跟我实现的接口有关 后来发现是我在接口中
  • 【星海随笔】Windows 下 安装 Eclipse IDE 编辑 C++ Code

    首先下载Eclips https download csdn net download weixin 41997073 86727250 安装后 然后点点点就可以了 但要记住自己安装的路径 安装后 先认识一下这个工具 File可以创建项目
  • sublime vue 语法高亮插件安装

    转自 http www cnblogs com cosnyang p 6290950 html 默认情况下 Vue js 的单文件组件 vue 在 sublime 编辑器中是不被识别的 若要想高亮显示 需要安装插件 Vue Syntax H
  • No such operator image::read_file问题解决

    在学习动手学深度学习这门课的时候 在13 6 节 标检测数据集这一章遇到了问题 读取数据的时候报错 No such operator image read file 网上有人说问题在于pytorch版本和torchvision版本不对应 可
  • weixin-js-sdk使用

    注意 以下内容自身的项目为uniapp编译生成微信小程序 小程序内嵌webview 一 微信初始化 安装微信sdk npm install weixin js sdk save 页面引入 import wx from weixin js s
  • 构建高性能数据库缓存之Redis(一)

    一 Redis概述 1 1 什么是redis Redis是一个开源的用ANSI C编写 支持网络 基于内存 亦可持久化的日志型 Key Value数据库 根据DB Engines com站点月度排行的数据显示 Reidis是最流行的键值对存
  • SpringBoot整合MinIO

    文章目录 1 问题背景 2 前言 3 步骤 3 1 引入依赖 3 2 连接MinIO服务端的必要参数 3 3 代码实现文件上传功能 3 4 验证 1 问题背景 前面搭建了MinIO容器 现在来研究SpringBoot整合MinIO 2 前言
  • 并发编程基础知识(一)[进程篇]

    目录 一 程序的执行方式 1 进程是什么东西 2 进程与程序区别 3 进程状态 4 linux进程地址空间布局 5 linux下进程相关的API函数 1 创建一个新进程 2 进程退出 3 等待子进程退出 4 让一个进程去执行一个指定的程序文
  • 什么是迁移学习(Transfer Learning)?【精讲+代码实例】

    文章目录 1 Introduction 2 Development of Machine Learning 3 What is transfer learning 4 How to transfer 4 1 Example 1 物体识别 4
  • UE4 C++ 类的4种引用类型,和异步加载资产

    UE4 C 类的4种引用类型 和异步加载资产 4种引用类型 对象引用 引用 World 的实例对象 就是直接定义 UPROPERTY EditAnywhere BlueprintReadOnly Category My 对象引用 UWorl
  • Hive分组排序

    系统环境 Linux Ubuntu 16 04 jdk 7u75 linux x64 hive 1 1 0 cdh5 4 5 hadoop 2 6 0 cdh5 4 5 mysql 5 7 24 相关知识 Hive中支持多种分组操作 Ord
  • 【D-S证据理论】学习笔记

    Dempster Shafer证据理论学习笔记 引言 证据理论最早由Dempster提出主要用来解决不确定性问题的主要工具 后来被Shafer改进 现在被称为D S证据理论 D S证据理论的突出优势就是能够刻画信息的不确定性和未知性 该理论
  • 数字化转型战略下的数据安全问题及治理对策

    随着数字化转型在各行业的持续推进 数据作为生产的重要要素 其安全性日益受到关注 如何在数据安全各项法律法规的强监管下 确保企业业务合法 数据使用合规 业务有序发展成为当前全行业关注的焦点 本文将分析当前数字化转型背景下的数据安全现状 梳理存
  • 华三ftp服务器信息发布命令,h3cne命令行.doc

    h3cne命令行 PAGE13 NUMPAGES13 目 录 TOC o 1 3 h z u HYPERLINK l Toc283211304 1 常规系统维护 PAGEREF Toc283211304 h 2 HYPERLINK l To
  • 已知三角形的两点坐标,和三个边长,求第三点的坐标

    前几天做一个功能 实现N多圆球的碰撞时 写的该算法 代码比较容易 使用了三角形的余弦定理 算法是二维的 改成三维也容易 其实三维的我也实现过 用于骨骼动画的IK处理上 1 已知三角形的两点坐标 和三个边长 求第三点的坐标 2 bool Ca
  • 多数据源连接池

    做元数据管理 需要查询多个数据源的元数据 不用orm框架 直接用java实现 如下 主要有几个重要的类 MultiPool 连接池 ConnectionManager 连接管理器 DBConenction 数据库连接对象 1 MultiPo
  • 网络层协议--IP简析 && 域名系统

    IP 因特网协议 ICMP 因特网控制协议报文 ARP 地址解析协议 RARP 反向地址解析协议 ip地址分类 A类 大型网络 0 开头 7位网络号 主机标识24位 B类 中型网络 10 开头 14位网络号 主机标识16位 C类 小型网络
  • PCL1.8的那些坑!各种编译及使用问题汇总

    在win10上用vs2013编译及使用pcl180遇见了各种坑 这里做个汇总 既是总结 也希望能给后来人引路 1 编译到visualization模块的时候 会有如下语句报错 if pcl visualization getColormap