Gcc:ld 找不到 -lc

Bil*_*low 6 gcc

我正在尝试编译一个简单的程序

gcc main.c
Run Code Online (Sandbox Code Playgroud)

和 gcc 向我抛出以下错误

/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

我在 Linux Mint 17.2 上,gcc 版本是 4.8.4

Gil*_*il' 6

ld是链接器,即将您编写的代码与预先存在的库代码联系在一起的程序。-lc表示存储在文件中libc.a并链接的库,因为该选项-lc已传递给链接器。

libcC 标准库,它会在每个程序中自动链接,除非您明确要求它不是(除非编译 libc 本身,否则很少这样做,因为没有 libc,您几乎无法做任何事情,而您绝对不能做任何模糊便携的事情)。

您需要提供libc.a. 你可以找到它apt-file search /libc.a(你需要先安装apt-file,然后通过运行初始化它sudo apt-file update)。该包被称为libc6-dev; Debian 及其衍生产品(包括 Ubuntu、Mint 等)中的大多数开发包都被称为其中 NAME 是库集合的名称(它并不总是您链接的特定库的名称,例如包包括其他库,例如as ) 和 # 是版本号。libNAME#-devlibc6libm

构建几乎所有东西都需要 C 标准库,因此它是build-essential 包的依赖项,如果您进行任何编译,则应包括该