Переопределение местоположения поиска по умолчанию для библиотеки в 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
[ 1135] Однако запуск 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

Вопросы:

  1. Как переопределить расположение версии libgmp, используемой при связывании? Я хотел бы использовать библиотеку в каталоге \usr\local\lib.
  2. Поместить ли я C_INCLUDE_PATH и другие переменные в мой файл .pam_environment, или есть более подходящее место?
2
задан 12 December 2012 в 22:21

1 ответ

Простейшим решением этой проблемы является установка библиотеки в другом месте:

./configure --prefix=/home/usr/local

Затем библиотека в этом каталоге выбирается при компоновке. Другой возможностью было бы переименовать /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgmp.so во что-то другое, но это не особенно разумно, если библиотека используется программой, установленной в системе.

0
ответ дан 12 December 2012 в 22:21

Другие вопросы по тегам:

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