У меня есть проект с Autotools создать библиотеку C ++, включающую привязки Python с Boost.Python.
У меня есть двоичный файл Boost.Python в моей системе, с которым я хочу связать:
/usr/lib/libboost_python-py27.so.1.49.0
Нет соответствующего файла .la, поэтому я подумал, что могу добавить полный путь к библиотеке Libtool Команда похожа на это:
bash ./libtool --mode=link g++ -rpath /usr/local/lib src/o1.lo src/o2.lo ... \
/usr/lib/libboost_python-py27.so.1.49.0 -o libNSM.la
Но Libtool отбрасывает /usr/lib/libboost_python-py27.so.1.49.0 из выпущенного г ++ команда. Если я бегу г ++ от руки работает нормально.
Как я могу сделать Libtool использовать собственную разделяемую библиотеку или что было бы правильным способом справиться с такой ситуацией. Я определенно хочу, чтобы пользователи могли использовать свои существующие бинарные файлы.
В моей системе есть двоичный файл Boost.Python, с которым я хочу связать
Вы установили boost-devel
установить символическую ссылку на /usr/lib/libboost_python-py27.so.1.49.0
?
Нет соответствующего файла .la
Это не требуется для libtool
связывать. Если boost-devel
пакет установлен -lboost_python-py27
вероятно будет достаточно.
Как я могу сделать так, чтобы libtool использовал собственную разделяемую библиотеку или как можно было бы справиться с такой ситуацией. Я определенно хочу, чтобы пользователи могли использовать свои существующие бинарные файлы.
Вы можете посмотреть на AX_BOOST_PYTHON макрос из GNU Autoconf Archive
чтобы помочь пользователю настроить желаемую библиотеку для libboost_python
(Вам может понадобиться больше, чем просто этот конкретный макрос). boost.m4 макрос также поддерживает Python и должен обеспечивать что-то подобное.
Других решений пока нет …