Как построить зависимый от надстройки проект с использованием обычных make-файлов? - PullRequest
8 голосов
/ 05 января 2010

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

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

Вся ваша помощь высоко ценится. :)

Ответы [ 4 ]

4 голосов
/ 05 января 2010

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

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

2 голосов
/ 13 января 2010

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

1 голос
/ 05 января 2010

Запустите bjam из make-файла, просто для сборки этой части

1 голос
/ 05 января 2010

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

...