0

私はCでプログラムを書きました。

gcc -o pr prc.c 

そして私は以下のものを手に入れました

/usr/bin/ld:cannot find -lc
collect2: ld returned 1 exit status
4

2 に答える 2

3

リンカ( )は、標準Cライブラリであるldライブラリファイルを見つけることができません。このライブラリ(およびのコマンドラインオプション)については、オプションのセクションでldmanページlibc.{a|so}を参照してください。引用:lcld

ld -o <output> /lib/crt0.o hello.o -lc

This tells ld to produce a file called output as the result of linking
the file "/lib/crt0.o" with "hello.o" and the library "libc.a"

これらのファイルが実際にシステムから欠落していることを確認する必要があります。私のUbuntu10.04LTSシステムの場合:

 ~  [88] locate libc.so
/lib/libc.so.6
/lib/tls/i686/cmov/libc.so.6
/usr/lib/libc.so

~  [89] locate libc.a
/usr/lib/libc.a
/usr/lib/xen/libc.a

この不足しているライブラリをインストールする方法は、ディストリビューションによって異なります。パッケージ管理を使用してを検索しlibcます。それ以外の場合は、再インストールを検討することをお勧めしますgcc

于 2012-05-27T18:20:03.193 に答える
3

-lc はCランタイムライブラリである libc の略です。*nix ディストリビューションが何であれ、適切なインストーラーを使用して glibc と glibc-common をインストールする必要があります。

man ldエラーメッセージについての洞察が得られるはずです。このようなメッセージは、リンカが見つからないライブラリを探していることを示しています。ここでのライブラリの名前は libc です (l を lib に置き換えます)。

于 2012-05-27T18:20:59.513 に答える