Как вынудить Повышение использовать rpath?

Я должен создать Повышение вне "обычного" дерева каталогов (т.е. /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 имели надлежащий путь поиска для другого Повышения, освобождает скомпилированный в них. Однако я не мог найти надлежащую процедуру этого. Кто-либо может помочь мне?

10
задан DevSolar 7 August 2010 в 18:49
поделиться

1 ответ

Вы можете добавить параметры компилятора и ссылки во время сборки из командной строки с помощью:

bjam hard-code-dll-path=true dll-path=/custom/path

В документации по Boost Build есть пункт часто задаваемых вопросов (см. Документы B2 ) .

6
ответ дан 4 December 2019 в 00:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: