关于在我的电脑中安装 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 的问题的主要内容,如果未能解决你的问题,请参考以下文章