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
, Эти инструкции:
- mkdir build
- сборка компакт-диска
- чмк..
- делать
- 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