make程序时ld报错的DEBUG方法
在make程序的时候出现ld报错:
/usr/bin/ld: cannot find -ly
collect2: ld returned 1 exit status
make: *** [bnK-lang] Error 1参考 usr/bin/ld: cannot find -l 原来可以通过设置make的DEBUG方式找到报错原因
LD_DEBUG=all make这里出现的报错如下
15208: calling fini: /lib64/libc.so.6 [0]
15208:
15207: symbol=dcgettext; lookup in file=make [0]
15207: symbol=dcgettext; lookup in file=/lib64/libc.so.6 [0]
15207: binding file make [0] to /lib64/libc.so.6 [0]: normal symbol `dcgettext' [GLIBC_2.2.5]
15207: symbol=__fprintf_chk; lookup in file=make [0]
15207: symbol=__fprintf_chk; lookup in file=/lib64/libc.so.6 [0]
15207: binding file make [0] to /lib64/libc.so.6 [0]: normal symbol `__fprintf_chk' [GLIBC_2.3.4]
make: *** [bnK-lang] Error 1
15207: symbol=chdir; lookup in file=make [0]
15207: symbol=chdir; lookup in file=/lib64/libc.so.6 [0]
15207: binding file make [0] to /lib64/libc.so.6 [0]: normal symbol `chdir' [GLIBC_2.2.5]
15207: symbol=exit; lookup in file=make [0]
15207: symbol=exit; lookup in file=/lib64/libc.so.6 [0]
15207: binding file make [0] to /lib64/libc.so.6 [0]: normal symbol `exit' [GLIBC_2.2.5]
15207:
15207: calling fini: make [0]
15207:
15207:
15207: calling fini: /lib64/libc.so.6 [0]/usr/bin/ld: cannot find -lc
/usr/bin/ld: cannot find -lc在CentOS 8上编译一个简单的c程序,Makefile中指定编译成静态库
Makefile
pause.c
执行
make报错:
原因参考 /usr/bin/ld: cannot find -lc while compiling with makefile
/usr/bin/ld: cannot find -lc 报错表示linker找不到静态链接你的库程序的C库。你需要通过 locate libc.a 查看一下系统中是否存在 libc.a 库文件。如果不存在,则需要安装 glibc-static 软件包。
不过,上述 glibc-static 软件包在默认repo仓库通道中没有启用,参考 No package glibc-static available
对于CentOS 8,需要激活 PowerTools 仓库:
然后就可以安装
现在可以编译了
Last updated
Was this helpful?