Переопределение местоположения поиска по умолчанию для библиотеки в Ubuntu 12.04.1
Чтобы правильно скомпилировать mpfr
библиотека в моей системе Ubuntu 12.04.1 (64-битная), мне нужно обновить C_INCLUDE_PATH
, LIBRARY_PATH
, LD_LIBRARY_PATH
а также LD_RUN_PATH
переменные. Это упоминается в FAQ для построения mpfr
библиотека. Обновление этих переменных необходимо, так как gmp
библиотека уже находится в путях поиска и включена как часть установки Ubuntu по умолчанию. Тем не менее, я установил gmp
библиотека в моем /usr/local/lib
каталог.
В моем домашнем каталоге я создал .pam_environment
файл и поместил следующие строки:
export C_INCLUDE_PATH=/usr/local/include:$C_INCLUDE_PATH
export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export LD_RUN_PATH=/usr/local/lib:$LD_RUN_PATH
Тем не менее mpfr
библиотека configure
Сценарий до сих пор не может найти свою собственную версию gmp
библиотека в /usr/local/lib
каталог.
Глядя внутрь /etc/ld.so.conf.d
каталог, содержимое моего libc.conf
файл:
# libc default configuration
/usr/local/lib
Кроме того, содержание x86_64-linux-gnu.conf
файл:
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
Тем не менее, работает locate libgmp
в командной строке показывает, что уже существует версия libgmp, которая поставляется вместе с системой.
$ locate libgmp
/usr/lib/x86_64-linux-gnu/libgmp.so.10
/usr/lib/x86_64-linux-gnu/libgmp.so.10.0.2
/usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgmp.so
/usr/share/doc/libgmp10
/usr/share/doc/libgmp10/README.Debian
/usr/share/doc/libgmp10/TODO.Debian
/usr/share/doc/libgmp10/changelog.Debian.gz
/usr/share/doc/libgmp10/copyright
/var/lib/dpkg/info/libgmp10:amd64.list
/var/lib/dpkg/info/libgmp10:amd64.md5sums
/var/lib/dpkg/info/libgmp10:amd64.postinst
/var/lib/dpkg/info/libgmp10:amd64.postrm
/var/lib/dpkg/info/libgmp10:amd64.shlibs
Вопросы:
- Как мне переопределить расположение
libgmp
версия использовалась при линковке? Я хотел бы использовать библиотеку в\usr\local\lib
каталог. - Я помещаю
C_INCLUDE_PATH
и другие переменные в моем.pam_environment
файл или есть более подходящее место?
1 ответ
Самым простым решением этой проблемы является установка библиотеки в другом месте:
./configure --prefix=/home/usr/local
Затем библиотека в этом каталоге выбирается при связывании. Другая возможность будет переименовать /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgmp.so
к чему-то еще, но это не особенно умно, если библиотека используется программой, установленной в системе.