我正在尝试编译一个简单的程序
gcc main.c
gcc 抛出以下错误
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
我该如何解决这个问题?
我使用的是 Linux Mint 17.2,gcc 版本是 4.8.4
答案1
ld
是链接器,即将您编写的代码与预先存在的库代码连接在一起的程序。-lc
表示存储在文件中libc.a
并且由于选项-lc
传递给链接器而被链接的库。
libc
是个C标准库,它会在每个程序中自动链接,除非您明确要求不链接(除了编译 libc 本身之类的事情之外,很少这样做,因为没有 libc,您几乎无法做任何事情,而且您绝对不能做任何模糊便携的东西)。
您需要提供libc.a
.您可以找到它apt-file search /libc.a
(您需要apt-file
先安装,然后通过运行初始化它sudo apt-file update
)。该包称为libc6-dev
; Debian 及其衍生品(包括 Ubuntu、Mint 等)中的大多数开发包都被调用,其中 NAME 是库集合的名称(并不总是您链接的特定库的名称,例如该包包含其他库,例如as ) 和 # 是版本号。libNAME#-dev
libc6
libm
构建几乎任何东西都需要 C 标准库,因此它是构建必备包,如果您进行任何编译,则应该包含它。