0

我用 C 编写了一个程序。在我使用它编译之后

gcc -o pr prc.c 

我得到了下面的东西

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

2 回答 2

3

链接器 ( ld) 找不到库文件libc.{a|so},即标准 C 库。请参阅ld 手册页以在 OPTIONS 部分下提及此库(和lc命令行选项ld)。报价:

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"

您应该检查以确保系统中确实缺少这些文件。在我的 Ubuntu 10.04 LTS 系统上:

 ~  [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 是 libc 的缩写,它是C运行时库。无论您的 *nix 发行版是什么,您都需要通过适当的安装程序安装 glibc 和 glibc-common。

man ld这应该可以深入了解错误消息。像这样的消息表明链接器正在寻找丢失的库。这里的库名称是 libc(将 l 替换为 lib)。

于 2012-05-27T18:20:59.513 回答