Linux下一类通用错误的解决方法


Linux下编译源代码的时候,会经常出现一类错误就是:
/usr/bin/ld: cannot find -libutempter
更加通用点的就是
/usr/bin/ld: cannot find -l***
后面的星星表示一类错误的名字。这个错误的原因很简单,就是链接错误,很简单的做法就是手动设置链接一次,就拿
/usr/bin/ld: cannot find -libutempter
来说:
我们现在lib文件夹下面去看看该类库文件存在的形式:
cd /usr/lib
ls -la | grep iutempter
得到如下:
lrwxrwxrwx 1 root root 20 09-10 19:26 libutempter.so.0 -> libutempter.so.1.1.4
-rwxr-xr-x 1 root root 6216 2007-01-07 libutempter.so.1.1.4
很明显,没有.so文件,我们再次链接一个.so文件就是了
ln -s libutempter.so.0 libutempter.so
可以再编译一下是不是就可以了

还有,比如
/usr/bin/ld: cannot find -lelf
也是类型,在lib文件夹下执行一个链接:
ln -s /usr/lib/libelf.so.1 /usr/lib/libelf.so
这里假定存在.so.1这个库文件

还有:
/usr/bin/ld: cannot find -lc
这个是不存在libc.so
同样给出一个libc.so的链接就是了

相关内容