我用 C 编写了一个程序。在我使用它编译之后
gcc -o pr prc.c
我得到了下面的东西
/usr/bin/ld:cannot find -lc
collect2: ld returned 1 exit status
链接器 ( 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
-lc 是 libc 的缩写,它是C
运行时库。无论您的 *nix 发行版是什么,您都需要通过适当的安装程序安装 glibc 和 glibc-common。
man ld
这应该可以深入了解错误消息。像这样的消息表明链接器正在寻找丢失的库。这里的库名称是 libc(将 l 替换为 lib)。