2010-01-05 3 views
8

Я работаю над проектом C++, и недавно нам нужно было включить в него небольшую часть повышения. Ускоренная часть действительно минимальна (Boost :: Python), поэтому, используя bjam для построения, все выглядит как излишний (кроме того, каждый, кто работает над проектом, чувствует себя комфортно с make и не знает значка джема).Как создать проект, зависящий от повышения, используя обычные make-файлы?

Я уже провел несколько тестов, но я не могу найти способ включения ранее упомянутой библиотеки в свой файл makefile и сделать сборку успешной.

Вся ваша помощь глубоко оценена. :)

ответ

2

У меня была такая же проблема и я нашел решение в этом tutorial. Вы 1) должны скомпилировать источник в объектный файл с опцией -fPIC gcc и 2) скомпилировать этот объект в библиотеку с опцией -shared gcc. Конечно, вы также должны ссылаться на библиотеку Boost.Python (обычно -lboost_python, однако для моей дебианской системы это, например, -lboost_python-mt-py25, я также должен добавить -I/usr/include/pythyon25). В моем make-файле я делаю эти два шага в одной команде. См. Также стр. 13 этого presentation.

+0

спасибо. Это был именно тот ответ, который я искал. :) – Fabzter

1

Если вам неудобно использовать bjam, вы можете рассмотреть возможность использования Boost.Cmake.
В качестве альтернативы вы должны, по крайней мере, иметь возможность более легко увидеть, что они делают, а затем с файлами bjam.

1

Run bjam из Makefile, только для строительства той части

4

Вы можете использовать подталкивание-х bcp utility извлечь только подмножество Boost, что вам нужно. Это минимизирует время сборки & размер.

Это не отвечает на ваш вопрос, однако. Возможно, вам захочется рассмотреть возможность создания библиотек Boost.Python по отдельности и проверки их непосредственно в вашей системе управления версиями. Тогда их не нужно было строить.

Смежные вопросы