Я должен создать Повышение вне "обычного" дерева каталогов (т.е. /custom/dir
вместо /usr
), который не является так большой частью проблемы: Просто передача --prefix=/custom/path
кому: ./runscript.sh
/ ./bjam
, и там Вы идете.
Или таким образом, я думал.
Проблема состоит в том, что некоторые библиотеки Boost зависят друг от друга, и - использование прохождения через процесса сборки по умолчанию ./bootstrap.sh
/ ./bjam
- кажется что --prefix
путь не добавляется к пути поиска библиотеки для Повышения, освобождает, т.е. нет -Wl,-rpath
применяется. Это означает, что библиотеки Boost в зависимости от других библиотек Boost не могут найти тех, которые во времени выполнения.
Мое приложение - соединение их /custom/path
Библиотеки повышения - уже перестали работать в ./configure
этап, потому что libboost_filesystem.so
не может найти libboost_system.so
, даже при том, что я передал -Wl,-rpath=/custom/path/boost/lib
к моей собственной строке компилятора (т.е. корректный путь к Повышению освобождает, я перепроверил это libboost_system.so
есть ли).
Теперь, для предотвращения властных методов как установка LD_LIBRARY_PATH
, Я хотел бы создать Повышение способом так, чтобы все библиотеки Boost имели надлежащий путь поиска для другого Повышения, освобождает скомпилированный в них. Однако я не мог найти надлежащую процедуру этого. Кто-либо может помочь мне?
Вы можете добавить параметры компилятора и ссылки во время сборки из командной строки с помощью:
bjam hard-code-dll-path=true dll-path=/custom/path
В документации по Boost Build есть пункт часто задаваемых вопросов (см. Документы B2 ) .