找不到Clang boost标头

时间:2015-02-03 07:57:05

标签: boost clang

我正在尝试编译一个构建一些C ++源代码的Python PCL模块。我收到了这个错误:

$ python setup.py install
running install
running build
running build_py
running build_ext
skipping 'pcl/_pcl.cpp' Cython extension (up-to-date)
building 'pcl._pcl' extension
/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -g -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Library/Python/2.7/site-packages/numpy/core/include -I/usr/local/Cellar/pcl/HEAD/include/pcl-1.8 -I/usr/local/Cellar/eigen/3.2.3/include/eigen3 -I/usr/local/Cellar/pcl/HEAD/include/pcl-1.8 -I/usr/local/Cellar/flann/1.8.4/include -I/usr/local/Cellar/pcl/HEAD/include/pcl-1.8 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c pcl/_pcl.cpp -o build/temp.macosx-10.6-intel-2.7/pcl/_pcl.o
pcl/_pcl.cpp:244:10: fatal error: 'boost/smart_ptr/shared_ptr.hpp' file not
      found
#include "boost/smart_ptr/shared_ptr.hpp"
         ^
1 error generated.
error: command '/usr/bin/clang'

无论出于什么原因,clang都没有查看/usr/local/include,它肯定会找到提升标题。正如您所看到的那样,它可以很好地链接所有其他依赖项。我可以补充一点,所以铿锵声会有所提升吗?

在OSX 10.10上,任何地方都没有任何奇特的事情发生。 Boost可能是由自制软件安装的,但文件都在/usr/local/include/boost中,正如我所期望的那样。

1 个答案:

答案 0 :(得分:0)

检查/usr/bin/clang++ -v some_test_file.cpp的输出,但编译器的标准搜索路径中/usr/local/include的可能性不大。

您需要将-I/usr/local/include添加到CXXFLAGSCPPFLAGS或您的构建脚本或环境中的任何适当位置。似乎python构建脚本无法正确检测Boost。

如果上述情况不属实(并且/usr/local/include确实显示在输出中),请确保/usr/local/include/boost/smart_ptr/shared_ptr.hpp存在。