web-dev-qa-db-fra.com

Étrange problème avec libc: référence indéfinie à «crypt»

J'ai quitté Archlinux pour Kubuntu 12.04 hier.

J'ai compilé buildroot 2012.08 sur Archlinux sans aucun problème. Bien que sur Kubuntu, libcrypt semble cassé. sysvinit ne le trouve nulle part. glibc-dev et toutes les dépendances sont installées.

Comment puis-je créer un lien vers libcrypt? Ou, quel paquet contient cette bibliothèque?

...
bc-gcc   sulogin.o    -o sulogin
sulogin.o: In function `main':
sulogin.c:(.text+0x49d): undefined reference to `crypt'
collect2: ld returned 1 exit status
4
sorush-r

Essayez d'ajouter '-lcrypt' après tous les objets utilisés dans la liaison; J'ai eu plusieurs cas où gcc se plaindrait de crypt si -lcrypt n'était pas proche de la fin de la liste de liens.

En d'autres termes, essayez quelque chose comme:

gcc -D FOO -D BAR -W -Wall -pedantic -O2 foo.o bar.o -lnsl -lcrypt -o baz

par opposition à

gcc -D FOO -D BAR -W -Wall -pedantic -O2 -lnsl -lcrypt foo.o baz.o -o baz
5
Eugéne

la référence non définie à 'crypt' est une erreur de l'éditeur de liens.

Essayez de créer un lien avec -lcrypt: gcc ....-lcrypt

3
user61928