我在 Ubuntu 14.04 上并且已经libboost-all-dev
安装了(Boost 1.54),并且我需要安装 Boost.NumPy 库。
我知道 NumPy 附带 Boost 1.64+,但我现在需要坚持使用 1.54,因此我需要从这目前已被弃用的 repo。
我按照下面的说明进行操作Boost.NumPy/libs/numpy/doc/cmakeBuild.rst
。这些说明是:
- mkdir 构建
- 光盘制作
- 制作...
- 制作
- 安装
一切都很好,我在执行这些命令时没有收到任何错误,所以我认为 Boost.Numpy 已成功安装在我的系统上。
我尝试编译一个简单的 C++ 程序来检查系统是否可以找到该文件,但是它不起作用。
C++ 文件仅包含以下标题:
#include <boost/python/numpy.hpp>
然后我像这样编译:
g++ test.cpp
我收到错误:
test.cpp:1:34: fatal error: boost/python/numpy.hpp: No such file or directory
#include <boost/python/numpy.hpp>
^
compilation terminated.
我尝试搜索头文件并且发现它就在那里。
$ sudo find / -name "numpy.hpp"
/usr/local/include/boost/numpy.hpp
我还在文件中添加了以下内容.bashrc
:
export INCLUDE="/usr/local/include/boost:$INCLUDE"
export LIBRARY_PATH="/usr/local/include/boost:$LIBRARY_PATH"
export CFLAGS="-I/usr/local/include/boost"
依然没有。
那么为什么 Boost.Numpy 没有正确安装?我错过了什么?文档非常少,我找不到其他任何东西。
一般来说,我如何才能知道我安装的 Boost 库是否可供系统使用?
谢谢。
答案1
由于您将标题包含为
<boost/python/numpy.hpp>
它期望在默认包含文件搜索路径中的某个目录的numpy.hpp
子目录中找到,或者在通过选项提供给编译器的路径中找到python
boost
-I
然而,该文件实际上位于
/usr/local/include/boost/numpy.hpp
没有python
子目录 - 所以你应该将它包含在你的 C++ 文件中
#include <boost/numpy.hpp>
然后告诉g++
添加/usr/local
到包含文件搜索路径
g++ -I/usr/local/include test.cpp