我正在尝试编译一个简单的程序
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
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 标准库,因此它是build-essential 包的依赖项,如果您进行任何编译,则应包括该包。
归档时间: |
|
查看次数: |
19410 次 |
最近记录: |