Boost.Numpy установлен из источника, но не работает

Я на Ubuntu 14.04 и у меня есть libboost-all-dev установлен (Boost 1.54) и мне нужно установить библиотеку Boost.NumPy.

Я знаю, что NumPy поставляется с Boost 1.64+, но сейчас мне нужно придерживаться 1.54, и, следовательно, мне нужно установить из этого репозитория, который в настоящее время не рекомендуется.

Я следовал инструкциям Boost.NumPy/libs/numpy/doc/cmakeBuild.rst, Эти инструкции:

  1. mkdir build
  2. сборка компакт-диска
  3. чмк..
  4. делать
  5. sudo сделать установку

Все хорошо, я не получаю никаких ошибок во время этих команд, поэтому я предполагаю, что 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
Другие вопросы по тегам