Mac 上的 pcl 一直有问题。

找不到 pcl_viewer 查看 pcd 文件。写个程序用 pcl::visualization::CloudViewer 查看点云,遇到 Runtime Exception。

今天下午下定决心搞定 pcl 。

pcl 以前是使用 homebrew 安装的,homebrew 安装的是 1.8.0 的版本,讲道理应该没有问题。

尝试到 pcl 的官网上,按照 Mac 的安装流程安装 pcl 1.6.0,依赖项装着装着,发现 pcl 1.6.0 依赖的 OpenNI 不支持当前的系统(macOS Sierra 10.12.2)。现在距离 pcl 1.6.0 发布已经过去好多年了,QHull 的依赖版本还是 2009.1,确实对 pcl 1.6.0 没有信心。

所以在 Github 上下载了 pcl 1.8.0 的源码来自己安装。

为了方便起见,依赖项都使用 homebrew 安装了。

VTK

boost 版本是 1.6.3,VTK 版本是 7.1.0,在编译 pcl 的时候会遇到 vtkObjectBase undefined 的错误,按照这个链接 https://github.com/PointCloudLibrary/pcl/issues/1192 ,把 vtk 7.1.0 卸载了,换上 vtk 6.3.0(同样 vtk 是自己编译安装)。

在编译的过程中需要注意,有一些 redefinition 的错误,这是由于编译源码和 homebrew 各安装了一次。在 /opt/local/ 的头文件和库是编译源码安装的,在 /usr/local/ 的头文件和库是 homebrew 安装的。删除 /opt/local/ 中的那一份就可以了。

编译好 pcl 之后发现 pcl_vie[Tab][Tab]…还是没有 pcl_viewer 这个可执行文件。上网搜,发现其实 pcl 在 Mac 下将 pcl_viewer 当做了 app 安装。在 /usr/local/bin 中可以发现有三个 pcl_*.app,只需进入 app 目录,找到相应的可执行文件,拷贝出来。(其实 homebrew 安装 pcl 的选项中就有 --without-apps 的选项。)

CloudViewer NSException

运行代码想要使用 CloudViewer 现实点云,发现存在 Runtime Exception —— NSException,在 github 的 issues 中找到有人讨论过这个问题,https://github.com/PointCloudLibrary/pcl/issues/253 。无法解决,只能使用 PCLVisualizer 代替。

macOS 安装 pcl 1.8.0的更多相关文章

  1. Ubuntu 16.04 上安装 PCL 1.8.0

    Ubuntu16.04之后安装pcl可以直接apt-get sudo apt-get install libpcl-dev pcl-tools 安装之前,准备一些依赖库 sudo apt-get up ...

  2. macOS 下的 MySQL 8.0.17 安装与简易配置

    如果我写的这篇你看不懂,可能网上也没有你能看懂的教程了 虽然这篇针对的是8.0.x版本,但是关于MySQL配置之类的方法还是通用的 环境信息与适用范围 环境信息 环境/软件 版本 macOS macO ...

  3. 记录archlinux中安装pcl的大致流程

    贴一下pcl在github上的网址: https://github.com/PointCloudLibrary/pcl/ 从这个网址出发,一般能找到安装的 tutorial.以下只说一下在archli ...

  4. Ubuntu 配置安装PCL

    Ubuntu 配置安装PCL 之前一直在Mac下开发,现在入手Ubuntu,也借此学习一下Linux下的源码编译安装过程. PCL简介 PCL(Point Cloud Library)是在吸收了前人点 ...

  5. Windows下安装PCL点云库

    原文链接:http://blog.csdn.net/u012337034/article/details/38270109 简介:         在Windows下安装PCL点云库的方法大概有两种: ...

  6. macOS 安装 Docker

    系统要求 Docker for Mac 要求系统最低为 macOS 10.10.3 Yosemite,或者 2010 年以后的 Mac 机型,准确说是带 Intel MMU 虚拟化的,最低 4GB 内 ...

  7. macOS 安装配置yaf框架 生成yaf项目

    macOS 安装配置yaf框架 Yaf只支持PHP5.2及以上的版本. 并支持最新的PHP5.3.3 Yaf需要SPL的支持. SPL在PHP5中是默认启用的扩展模块 Yaf需要PCRE的支持. PC ...

  8. macOS 安装 Docker Desktop CE(转)

    现在基本上都使用docker进行部署项目,所以还是有必要学习下,关于docker的简介这里就不在描述,本文转载自https://yeasy.gitbooks.io/docker_practice/co ...

  9. macOS安装Python MySQLdb

    macOS安装Python MySQLdb 0. 参考 Mac OS X - EnvironmentError: mysql_config not found 1. 背景 import MySQLdb ...

随机推荐

  1. 计算机网络【4】—— TCP和UDP的区别

    一.TCP/UDP优点和缺点 TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认.窗口.重传.拥塞控制机制,在数据传完后,还会断开连接 ...

  2. MySQL复合主键下ON DUPLICATE KEY UPDATE语句失效问题

    问题的起因,假设有一张表,里面保存了交易订单,每张订单有唯一的ID,有最后更新时间,还有数据,详情如下: 1 2 3 4 5 6 7 +-------+----------+------+-----+ ...

  3. java线程dump分析工具

    jstack和线程dump分析  java程序性能分析之thread dump和heap dump 一.[内存dump] jmap –dump:live,format=b,file=heap.bin ...

  4. 内存映像分析工具Eclipse Memory Analyzer

    1. Eclipse Memory Analyzer安装 Help ->Eclipse Marketplace,搜索Memory,点击install,->confirm->同意证书内 ...

  5. widows终端远程连接Linux服务器

    一.前言 为什么不是远程连接Linux服务器? 因为我不会,远程连接window我就用电脑自带的“远程桌面连接”. 以下所述都是在CentOS操作系统下的. 服务器刚换成Linux的时候很迷茫,感觉无 ...

  6. django中使用FastDFS分布式文件系统接口代码实现文件上传、下载、更新、删除

    运维使用docker部署好之后FastDFS分布式文件系统之后,提供给我接口如下: fastdfs tracker 192.168.1.216 192.168.1.217 storage 192.16 ...

  7. 触发Full GC执行的情况 以及其它补充信息

    除直接调用System.gc外,触发Full GC执行的情况有如下四种.1. 旧生代空间不足旧生代空间只有在新生代对象转入及创建为大对象.大数组时才会出现不足的现象,当执行Full GC后空间仍然不足 ...

  8. Java的顺序栈和链式栈

    栈的定义 栈是限制在表的一段进行插入和删除的运算的线性表,通常能够将插入.删除的一端为栈顶,例外一端称为栈底,当表中没有任何元素的时候称为空栈. 通常删除(又称"退栈")叫做弹出p ...

  9. JAVA代码保护从入门到放弃

    java语言开发的产品,需要部署到客户现场服务器.产生了对代码进行保护的需求,开始研究代码加密方式. 经过研究分析后有两种思路,混淆和加密.两者各自适应不同的情况. 由于大量spring注解功能,并且 ...

  10. 解题:CQOI 2017 小Q的表格

    题面 首先观察$b*f(a,a+b)=(a+b)*f(a,b)$这个东西 可以化成$\frac{f(a,a+b)}{a+b}=\frac{f(a,b)}{b}$,发现这类似辗转相除求gcd 而我们两边 ...