Ответ 1
Есть несколько вариантов, которые вы могли бы использовать:
- Скомпилируйте boost из исходного кода и передайте дополнительные параметры компилятора в bjam. Например.
bjam ... cxxflags='-fPIC'
. Это скомпилирует каждый файл источника boost как независимый от позиции код. - Использовать boost в форме разделяемых библиотек. В этом случае вы, вероятно, захотите отправить расширенные разделяемые библиотеки вместе с вашим приложением, чтобы убедиться, что используется соответствующая версия boost. Вы можете связать свой исполняемый файл с флагом
'-Wl,-rpath,$ORIGIN'
, так что, когда динамический компоновщик ищет общие библиотеки, необходимые вашему исполняемому файлу, он ищет их в каталоге, где находится исполняемый файл. Подробнее о$ORIGIN
см. man ld.so.