Pour compiler correctement la bibliothèque mpfr
sur mon système Ubuntu 12.04.1 (64 bits), je dois mettre à jour les variables C_INCLUDE_PATH
, LIBRARY_PATH
, LD_LIBRARY_PATH
et LD_RUN_PATH
. Ceci est mentionné dans FAQ pour la construction de la bibliothèque mpfr
. La mise à jour de ces variables est nécessaire car la bibliothèque gmp
est déjà sur les chemins de recherche et incluse dans l'installation par défaut d'Ubuntu. Cependant, j'ai installé la bibliothèque gmp
dans mon répertoire /usr/local/lib
.
Dans mon répertoire personnel, j'ai créé un fichier .pam_environment
et placé les lignes suivantes:
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
Cependant, le script mpfr
library configure
ne trouve toujours pas ma propre version de la bibliothèque gmp
dans le répertoire /usr/local/lib
.
Dans le répertoire /etc/ld.so.conf.d
, le contenu de mon fichier libc.conf
est le suivant:
# libc default configuration
/usr/local/lib
En outre, le contenu du fichier x86_64-linux-gnu.conf
est le suivant:
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
Cependant, l'exécution de locate libgmp
sur la ligne de commande indique qu'il existe déjà une version de libgmp livrée avec le système.
$ 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
Des questions:
libgmp
utilisée lors de la liaison? J'aimerais utiliser la bibliothèque du répertoire \usr\local\lib
.C_INCLUDE_PATH
et d’autres variables dans mon fichier .pam_environment
ou existe-t-il un emplacement plus approprié?La solution la plus simple à ce problème semble être d'installer la bibliothèque à un autre emplacement:
./configure --prefix=/home/usr/local
Ensuite, la bibliothèque dans ce répertoire est sélectionnée lors de la liaison. Une autre possibilité serait de renommer /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgmp.so
en quelque chose d'autre, mais cela n'est pas particulièrement intelligent si la bibliothèque est utilisée par un programme installé sur le système.