编译报错 /usr/bin/ld: cannot find -lc 解决

今天在编译chkrootkit工具时报错,/usr/bin/ld: cannot find -lc,请教了不少人,在网上找了不少方法尝试终于解决了

先看问题:

这问题一般是由于ld在进行库连接时找不到相应的库文件导致的

解决方法:

出现问题时,先去lib目录下查找相关的库文件:

[[email protected] ~]# cd  /usr/lib

[[email protected] lib]# ll | grep libc.so
lrwxrwxrwx   1 root root       16 Nov 14 22:40 libc.so.6 -> libc-2.12.so

-rwxr-xr-x   1 root root    25484 Dec 16  2009 libc-2.12.so

上述库文件中没有库的入口: libc.so

可以通过手动建立连接来解决:

# ln -s  ./libc.so.6   ./libc.so

但是这个问题主要是少安装了两个软件包:

glibc-static    glibc-utils

# yum install glibc* -y

安装好了以后再编译就没有报错了

chkrootkit这个工具可以用来检查Linux操作系统,有没有被更换重要文件。

官方地址: http://www.chkrootkit.org/。

详细关于rootkit介绍:http://ixdba.blog.51cto.com/2895551/1557983

时间: 2024-10-14 16:55:14

编译报错 /usr/bin/ld: cannot find -lc 解决的相关文章

编译报错: /usr/bin/ld: cannot find -lc

在编译的时候偶尔遇到错误/usr/bin/ld: cannot find -lc,如下: 查看是没有安装静态库glibc-static而导致的,安装在编译即可: 安装方法: yum install glibc-static -y 然后在编译就不报错了:

安装 sysbench的 报错 /usr/bin/ld: cannot find -lmysqlclient_r 解决办法

首先你需要找到这个库的位置 一般找的话需要将lib 给加上(注意:我这里是 -lmysqlclient_r 的报错,于是我找就找 libmysqlclient_r ) find / -name libmysqlclient_r* /usr/lib64/mysql/libmysqlclient_r.so/usr/lib64/mysql/libmysqlclient_r.so.16/usr/lib64/mysql/libmysqlclient_r.so.16.0.0 既然找到了 那应该是路径的问题

ubuntu 14.04 编译opencv-3.4.2 报错: /usr/bin/ld: /usr/local/lib/libavformat.a(allformats.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC

ubuntu 14.04 编译opencv-3.4.2 报错解决: 错误信息:/usr/bin/ld: /usr/local/lib/libavformat.a(allformats.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC/usr/local/lib/libavformat.a: error adding symbols:

chkrootkit 编译报错的解决/usr/bin/ld: cannot find -lc

1:Centos6.5安装chkrootkit wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz tar xvf chkrootkit.tar.gz cd chkrootkit-0.51/ make sense报错如下: /usr/bin/ld: cannot find -lc collect2: ld returned 1 exit status make: *** [strings-static] Error 1 2:解决

【解决】/usr/bin/ld: cannot find -lc

现象:运行gcc静态编译程序时报错: /usr/bin/ld: cannot find -lc collect2: ld returned 1 exit statusmake: *** [gcc_dry2] Error 1 (或者调用Makefile编译时报错) 原因:程序链接须要静态库,系统没有安装静态库导致报错 解决:安装静态库 #sudo  yum install glibc-static

/usr/bin/ld: cannot find -lperconaserverclient_r 解决

编译sqladvisor安装遇到: [[email protected] sqladvisor]# cd SQLAdvisor/sqladvisor/ [[email protected] sqladvisor]# cmake -DCMAKE_BUILD_TYPE=debug ./ -- Configuring done -- Generating done -- Build files have been written to: /opt/SQLAdvisor/sqladvisor [[ema

usr/bin/ld: cannot find 错误解决方法和 /etc/ld.so.conf

我makefile出现这个错误: HelloWorldServer.c:(.text+0xaa): undefined reference to `zmq_send'collect2: error: ld returned 1 exit statusmake: *** [HelloWorldServer] Error 1 一直以为没找到动态库,但是指定了具体路径: LDFLAGS=  -L /opt/zeromq/lib -lzmq $(CC)  $(CFLAGS) $(LDFLAGS) -o

usr/bin/ld: cannot find 错误解决方法

参考:http://blog.siyebocai.cn/20100324_5p424qs7.html 通常出现在软件的编译时间usr/bin/ld: cannot find -lxxx的错误,基本的原因是库文件并没有导入的ld检索文件夹中. 解决方案: 1. 确认库文件是否存在,比方-l123, 在/usr/lib, /usr/local/lib,或者其它自己定义的lib下有无lib123.so, 假设仅仅是存在lib123.so.1, 那么能够通过ln -sv lib123.so.1   li

在不安装sqlite3的时候使用sqlite3数据库以及问题/usr/bin/ld: skipping incompatible.....的解决

在没有安装sqlite3的linux机器上,怎么在不安装的情况下使用sqlite3的数据库呢: 其中只需要2个文件即可: 数据库的动态库libsqlite3.so,sqlite3.h. 另外,一些系统可能会需要sqlite3ext.h 操作方法: 先找到libsqlite3.so,sqlite3.h两个文件,放在工程文件夹下(任意方便的位置,在编译的时候链接即可) 指定位置链接并编译 那么在编译时加上动态库的链接,并且指定为当前路径 gcc test.c $(HEADDIR)/sqlite3.h