3

Я собираю Boost 1.53.0 (последний выпуск) в Arch 2012.6. Причина, по которой я строю, заключается в том, что мне нужно скомпилировать следующее:

./b2 install --prefix=/usr/local/ cxxflags="-std=c++11"

В частности, мне нужно предоставить cxxflags="std=c++11" , который, похоже, не использовался в пакетах. Я застрял, потому что сборка не находит правильные библиотеки Python. Я установил как python2 и python с pacman, но я подозреваю, что для boost требуется библиотека python 2 и он не находит требуемые заголовки, потому что Arch по умолчанию использует python 3. (Можете ли вы сказать, что я немного новичок в Arch?).

Я подозреваю, что смогу предоставить b2 дополнительную информацию, возможно, с аргументом linkflags . Но я в тупике.

Ошибки компиляции, которые я получаю, похожи на это:

gcc.compile.c++ bin.v2/libs/python/build/gcc-4.8.1/release/link-static/threading-multi/object/function_doc_signature.o
In file included from ./boost/python/detail/prefix.hpp:13:0,
             from ./boost/python/converter/registrations.hpp:8,
             from libs/python/src/object/function_doc_signature.cpp:9:
./boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: No such file or directory
 # include <pyconfig.h>

Ценю любую помощь, спасибо всем!

1 ответ1

6

Добавление -I/path/to/python/header/files/ к аргументу cxxflags сообщает компилятору, где искать соответствующие файлы заголовков. Поэтому моя команда сборки становится:

./b2 install --prefix=/usr/local/ cxxflags="-std=c++11 -I/usr/include/python2.7/"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .