Problema estranho com a libc: referência indefinida para 'crypt'

4

Eu mudei do Archlinux para o Kubuntu 12.04 ontem.

Eu compilei buildroot 2012.08 no Archlinux sem nenhum problema. Embora no Kubuntu libcrypt parece estar quebrado. sysvinit não pode encontrar em nenhum lugar. glibc-dev e todas as dependências estão instaladas.

Como faço o link para libcrypt ? Ou qual pacote contém essa biblioteca?

...
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
    
por sorush-r 28.09.2012 / 11:39

2 respostas

5

Tente adicionar '-lcrypt' depois de qualquer objeto usado na vinculação; Eu tive alguns casos em que o gcc iria reclamar sobre o crypt se o -crypt não estivesse perto do final da lista de links.

Em outras palavras, tente algo como:

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

ao contrário de

gcc -D FOO -D BAR -W -Wall -pedantic -O2 -lnsl -lcrypt foo.o baz.o -o baz
    
por Eugéne 23.10.2012 / 22:25
3

Referência indefinida para 'crypt' é um erro de linker.

Tente ligar com -lcrypt: gcc ....-lcrypt

    
por user61928 28.09.2012 / 11:52