web-dev-qa-db-ja.com

libcの奇妙な問題: `crypt 'への未定義の参照

昨日、ArchlinuxからKubuntu 12.04に移行しました。

Archlinuxでbuildroot 2012.08を問題なくコンパイルしました。 Kubuntuではlibcryptは壊れているようです。 sysvinitはどこにも見つかりません。 glibc-devおよびすべての依存関係がインストールされます。

libcryptにリンクするにはどうすればよいですか?または、どのライブラリにそのライブラリが含まれていますか?

...
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

リンクで使用されるオブジェクトの後に「-lcrypt」を追加してみてください。 -lcryptがリンクリストの最後近くにない場合、gccがcryptについて文句を言ういくつかのインスタンスがありました。

つまり、次のようなものを試してください。

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

とは対照的に

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

'crypt'への未定義の参照はリンカーエラーです。

-lcryptでリンクしてみてください:gcc ....-lcrypt

3
user61928