Pourquoi est-à défaut de gcc avec " méconnu option de ligne de commande “-L/lusr/opt/mpfr-2.4.2/lib”'?
Mon sysadmin récemment installé une nouvelle version de GCC, dans /lusr/opt/gcc-4.4.3. Je l'ai testé comme suit:
mike@canon:~$ cat test.c
int main(){
return 0;
}
mike@canon:~$ gcc test.c
/lusr/opt/gcc-4.4.3/libexec/gcc/i686-pc-linux-gnu/4.4.3/cc1: error while loading shared libraries: libmpfr.so.1: cannot open shared object file: No such file or directory
Après en avoir informé mon sysadmin à ce sujet, dit-il à ajouter /lusr/opt/mpfr-2.4.2/lib:/lusr/opt/gmp-4.3.2/lib
à mon LD_LIBRARY_PATH
. Après avoir fait ceci, j'obtiens l'erreur suivante:
mike@canon:~$ gcc test.c
cc1: error: unrecognized command line option "-L/lusr/opt/mpfr-2.4.2/lib"
Tout d'abord, mon sysadmin n'était pas tout à fait sûr que c'était la meilleure solution(mais il a dit qu'il a travaillé pour lui...), donc, il y a une meilleure solution?
Deuxième, pourquoi suis-je une erreur de l'éditeur de liens de cc
, et comment puis-je résoudre ce problème?
Quelques informations qui peuvent vous être utiles:
mike@canon:~$ env | grep mpfr
OLDPWD=/lusr/opt/mpfr-2.4.2/lib
LD_LIBRARY_PATH=/lusr/opt/mpfr-2.4.2/lib:/lusr/opt/gmp-4.3.2/lib:
mike@canon:~$ echo $LDFLAGS
(the above is a blank line)
Ce système d'exploitation?
Clairement, un 32-bits de Linux sur Intel - témoin, le nom de chemin le chemin d'accès à
Leffler: étant Donné que son installation est en panne, peut-être à ne pas être digne de confiance.
peut-être pas...il ne ferait pas de mal d'avoir de l'information. Mais le compilateur est maintenant en cours d'exécution assez que l'o/s doit être suffisamment compatible avec Linux que c'est probablement une variante de Linux. En fin de compte, il ne fera pas beaucoup de différence - il a probablement besoin d'un reconstruite GCC - mais y compris la version et les informations de plate-forme est généralement une bonne idée.
Clairement, un 32-bits de Linux sur Intel - témoin, le nom de chemin le chemin d'accès à
cc1
. Si vous avez des questions sur les distro Linux, qui est un problème différent - bien qu'il ne devrait pas être un problème critique.Leffler: étant Donné que son installation est en panne, peut-être à ne pas être digne de confiance.
peut-être pas...il ne ferait pas de mal d'avoir de l'information. Mais le compilateur est maintenant en cours d'exécution assez que l'o/s doit être suffisamment compatible avec Linux que c'est probablement une variante de Linux. En fin de compte, il ne fera pas beaucoup de différence - il a probablement besoin d'un reconstruite GCC - mais y compris la version et les informations de plate-forme est généralement une bonne idée.
OriginalL'auteur Mike | 2010-02-12
Vous devez vous connecter pour publier un commentaire.
Je dirais que votre administrateur de système doit installer le GMP et MPFR des bibliothèques de la machine de compilation dans le même emplacement sur votre ordinateur. (Il y a aussi le MPC bibliothèque lesquelles vous pouvez également avoir besoin). Sinon, votre administrateur de système doit installer la reconstruction de la GCC - de préférence dans la version 4.5.2 puisque c'est (à ma connaissance) de courant avec les paramètres corrects pour le cas où les BPF et MPFR bibliothèques seront installés sur votre machine.
Vous ne devriez pas besoin de définir LD_LIBRARY_PATH utiliser GCC. Si vous avez besoin de le faire, il indique qu'il n'a pas été construit pour la machine où il est en cours d'exécution. Principales bibliothèques sont manquants.
D'aller plus loin avec votre débogage, vous avez probablement besoin d'utiliser:
Cela va vous montrer les lignes de commande exécutée. Il n'y a pas d'appel à la
-L
option (ce qui affecte la façon dont les programmes sont liés) à être passés à la phase 1 du compilateur.OriginalL'auteur Jonathan Leffler
Cela ressemble à certains buggy argument le traitement par le gcc (il ne devrait pas se plaindre de -Lfoo).
Pouvez-vous essayer de définir
de sorte qu'il y a un espace avant que la bibliothèque mpfr chemin?
OriginalL'auteur Nick Dixon