Мне бы очень хотелось услышать ваши объяснения и методы решения проблемы, с которой я сталкиваюсь уже так давно.
Я работаю в удаленном кластере, где команда sudo не разрешена, и любая операция над каталогами выше $ HOME ветвью не разрешена ($HOME=/storage/5/trentalove
)
Мне нужно настроить
$HOME/external/trentacoollime
с библиотекой boost, которую я установил в $HOME/boost_1_65_1
с использованием источника boost_1_65_1.tar.bz2 из http://www.boost.org/users/history/version_1_65_1.html
(Обратите внимание, что sudo apt-get install libboost-all-dev
недопустимо.)
Затем я определяю переменную PATH в .bash_profile и экспортирую как `export PATH = $ HOME / boost_1_65_1: $ PATH '
Однако при настройке в каталоге $ HOME / external / trentacoollime с
./configure
мне было выдано сообщение об ошибке
configure: error: не удается найти версию заголовков Boost> = 1.41.0
Когда я настраиваюсь с
./configure --with-boost=../../boost_1_65_1
Он не дал мне сообщения об ошибке и успешно настроен.
Я предполагаю, что, поскольку я определил и экспортировал переменную PATH в каталог boost, мне не нужно иметь опцию --with-boost=../../boost_1_65_1
при выполнении команды ./configure
. Однако мне это было нужно.
Может ли кто-нибудь объяснить, чего мне не хватает?
с. Я сделал то же самое на моей машине с sudo apt-get install libboost-all-dev
, который установил boost_1_65_1 в каталоге /usr/include
. Тогда я все еще мог бы сконфигурировать $HOME/external/trentacoollime
только с опцией ./configure
и без --with-boost=
($ PATH определяется так же, как в кластере). Тем не менее, обратите внимание, что я не могу реализовать ту же стратегию в кластере, так как у меня нет разрешения ни на sudo, ни на какие-либо команды mv, cp, ln для /usr/include
, которые находятся в более высокой ветви, чем мой каталог $HOME
.