我正在使用ubuntu,gcc和g ++工作正常,但今天它显示:
cannot find -lm
cannot find -lc
我搜索并发现它与/usr/bin/ld
有关。这是符号链接(我希望)到lbd.bdf
。我将该文件粘贴在某些朋友的ubuntu目录中。它不起作用。
我发现-lc
表示包含静态库libc.a.
同样适用于-lm
我在i386-linux-folders
中找到了它们(名字不同)。
我尝试了代码块但错误相同。
答案 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