Boost.Numpy 从源代码安装但不起作用

Boost.Numpy 从源代码安装但不起作用

我在 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。这些说明是:

  1. mkdir 构建
  2. 光盘制作
  3. 制作...
  4. 制作
  5. 安装

一切都很好,我在执行这些命令时没有收到任何错误,所以我认为 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子目录中找到,或者在通过选项提供给编译器的路径中找到pythonboost-I

然而,该文件实际上位于

/usr/local/include/boost/numpy.hpp

没有python子目录 - 所以你应该将它包含在你的 C++ 文件中

#include <boost/numpy.hpp>

然后告诉g++添加/usr/local到包含文件搜索路径

g++ -I/usr/local/include test.cpp

相关内容