在g ++ linux中找不到-lc和-lm

时间:2011-09-02 13:19:01

标签: gcc include g++

我正在使用ubuntu,gcc和g ++工作正常,但今天它显示:

cannot find -lm
cannot find -lc

我搜索并发现它与/usr/bin/ld有关。这是符号链接(我希望)到lbd.bdf。我将该文件粘贴在某些朋友的ubuntu目录中。它不起作用。

我发现-lc表示包含静态库libc.a.
同样适用于-lm

我在i386-linux-folders中找到了它们(名字不同)。

我尝试了代码块但错误相同。

3 个答案:

答案 0 :(得分:24)

编译器找不到静态glibc,您可能只安装了共享库
试试

yum install glibc-static

答案 1 :(得分:6)

确保您的libpath(以g ++为单位)指向libm.a和libc.a所在的目录(使用-L选项)

答案 2 :(得分:0)

ld是GNU链接器。

man ld        ld结合了许多对象和归档文件,重新定位其数据并绑定符号引用。通常,编译程序的最后一步是运行ld。

用于将程序与C库和C数学库链接。您需要确保已安装libc6-dev

foo@bar: $ dpkg -s libc6-dev

或者更通用,请确保build-essential,这取决于少数必要的C包。

foo@bar: $ dpkg -s build-essential