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

Вопросы:

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

1 ответ

Решение

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

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

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

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