关于在我的电脑中安装 PCL 的问题

Posted

技术标签:

【中文标题】关于在我的电脑中安装 PCL 的问题【英文标题】:Issues about installing PCL in my computer 【发布时间】:2018-12-17 05:48:21 【问题描述】:

当我尝试安装 python-pcl(PCL 是用于像激光雷达数据一样展示的点云库。我按照https://github.com/strawlab/python-pcl 上的说明进行操作,并且我已经将 travis/pcl-2d-1.8.pc 文件复制到/usr/local/lib/pkgconfig 文件夹)在我的计算机中。我在终端输入AppledeMacBook-Pro-3:python-pcl-0.3.0rc1 apple$ python setup.py install。然后我遇到了以下问题:

running install
running bdist_egg
running egg_info
writing requirements to python_pcl.egg-info/requires.txt
writing python_pcl.egg-info/PKG-INFO
writing top-level names to python_pcl.egg-info/top_level.txt
writing dependency_links to python_pcl.egg-info/dependency_links.txt
reading manifest file 'python_pcl.egg-info/SOURCES.txt'
writing manifest file 'python_pcl.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.6-x86_64/egg
running install_lib
running build_py
running build_ext
skipping 'pcl/_pcl_180.cpp' Cython extension (up-to-date)
building 'pcl._pcl' extension
/usr/bin/clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/apple/miniconda3/include -I/Users/apple/miniconda3/include -DEIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET=1 -I/Users/apple/miniconda3/pkgs/python-3.5.4-h8f450c2_22/lib/python3.5/site-packages/numpy/core/include -I/usr/local/include/pcl-1.8 -I/usr/local/Cellar/openni/1.5.7.10/include/ni -I/usr/local/include/pcl-1.8 -I/usr/local/Cellar/flann/1.9.1_6/include -I/usr/local/include/pcl-1.8 -I/opt/local/include/eigen3 -I/usr/include/ni -I/usr/include/vtk-5.8 -I/usr/local/include/vtk-8.0 -I/usr/local/Cellar/vtk/8.0.1/include -I/Users/apple/miniconda3/pkgs/python-3.5.4-h8f450c2_22/include/python3.5m -c pcl/_pcl_180.cpp -o build/temp.macosx-10.6-x86_64-3.5/pcl/_pcl_180.o
warning: include path for stdlibc++ headers not found; pass '-std=libc++' on the
      command line to use the libc++ standard library instead
      [-Wstdlibcxx-not-found]
pcl/_pcl_180.cpp:447:10: fatal error: 'vector' file not found
#include <vector>
         ^~~~~~~~

有人说这与我的 Cython 版本有关。但我已经将 Cython 切换到 0.25.2 版,仍然无法正常工作。有没有人有同样的问题?非常感谢。顺便说一句,我的python版本是3.5.4,我的Mac版本是macOS Mojave 10.14.1

【问题讨论】:

您能告诉我们更多细节吗? pcl是什么?您尝试安装它时运行的命令是什么?此错误消息来自哪里? (给我们完整的堆栈,否则很难在没有上下文的情况下提供帮助) 对不起,我添加了更多细节。 如前所述,您需要手动调整设置,如果尚未在他们的 github 跟踪器上提出问题,您还应该通知他们 我会的。谢谢你提醒我。 @LeeDennis 你知道什么是变色龙问题吗? meta.stackexchange.com/questions/43478/…如果遇到新问题,请提出新问题。 【参考方案1】:

这是当前 MacOS 安装的一个特殊问题。您可以调整setup.py 并按照警告建议将-std=libc++ 添加到编译选项中,即

from distutils.core import setup
from Cython.Build import cythonize

...  some stuff

#passing `-stdlib=libc++` to compiler and linker:
ext_modules = [Extension(...,
                         language='c++',
                         extra_compile_args=["-stdlib=libc++"], # + anything else you need
                         extra_link_args= ["-stdlib=libc++"] # + anything else you need]

... some more stuff

我还在链接器选项中添加了-stdlib=libc++,因为它可能是您将遇到的下一个问题。

更多背景:在 MacOS 世界中,长期以来,c++ 标准库有两种不同的实现:-libstdc++gcc 相关联,libc++clang 相关联。在开始时-libstdc++ 也默认与clang-compiler 一起使用。但是,情况不再如此——它甚至现在都没有安装,这就是找不到标头的原因。我不确定为什么您的 clang-version 默认不采用 libc++ - 所以您必须手动将其传递给编译器/链接器。

【讨论】:

以上是关于关于在我的电脑中安装 PCL 的问题的主要内容,如果未能解决你的问题,请参考以下文章

无法在我的日食中安装任何弹簧工具

在Windows电脑中安装配置多个jdk

求大神帮忙解决关于CentOS系统中安装软件提示缺少文件的问题

eclipse中安装maven的插件

我可以在 IOS 模拟器中安装“应用商店”吗?

合并共享PRI文件的合并失败:错误0x80070490。我的电脑坏了吗?