700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 精辟!(/usr/bin/ld: cannot find -lxxx)可能出现的问题和原因

精辟!(/usr/bin/ld: cannot find -lxxx)可能出现的问题和原因

时间:2023-07-19 11:27:22

相关推荐

精辟!(/usr/bin/ld: cannot find -lxxx)可能出现的问题和原因

(/usr/bin/ld: cannot find -lxxx)
转载注明出处: /wicoboy/blog/13-03/292170_cdab5.html 问题描述 /usr/bin/ld: cannot find -lxxx 其中xxx即表示函式库文件名称,其命名规则是:lib+库名(即xxx)+.so。 可能原因:

1安装了,但相对应的lib版本不兼容 ——我们需要的是libjpeg.so.8.0但安装的是libjpeg.so.6.0, ——或者是需要arm平台上的lib,但我们安装的是X86架构的,或反之本来是要编译arm平台上的却忘了指定交叉编译器 ——我们需要32位但我们安装的是64位的

2安装了,版本也对了,但lib(.so.version-num)的symbolic link 不正确,没有连结到正确的函式库文件(.so) ——我们需要的是libjpeg.so.8.0,也安装上了,但是实际使用时我们是查找的libjpeg.so,就需要相应的一个名为libjpeg.so的link 指向libjpeg.so.8.0 3目录中确实没有相对应的lib ——系统中没有安装相对应的lib ——安装了,但不在这个目录且不在环境变量中 遇到此类问题的解决思路: 一、先详细了解问题,注意看错误的详细信息以进一步确定,若出现类似下面提示: /usr/bin/ld: skipping incompatible /usr/local/jpeg-6b when searching for -libjpeg.so 问题:版本不兼容

1、32位 与 64位 冲突问题 案例:

解决 yum provides libX11.so

libX11-devel-1.3-2.el6.x86_64 : Development files for libX11

Repo : base

Matched from:

Filename : /usr/lib64/libX11.so

解决:

yum install libX11-devel-1.3-2.el6.x86_64

安装 x86_64 兼容包

2、平台不兼容ARM X86

案例: 很可能是编译是忘了指定交叉编译工具 make CC=arm-xilinx-linux-gnueabi-gcc 或者手动修改Makefile中的CC 3、版本号不对 安装新的版本(一般会有具体的提示,要求是什么版本) 二、若非版本问题 进入相关目录查看是否是lib(.so.version-num)的symbolic link 不正确,并建立链接 案例: cd /usr/lib

ln -s libjpeg.so.6 libjpeg.so 三、真的没有要找的libxxx.so 1、安装了但不在系统变量所设的目录 修改Makefile 在编译选项中添加Lyourlibpath 案例: 修改plugins/input_uvc/Makfile

修改

CFLAGS = -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

CFLAGS = -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC-I/home/wu/jpeg-6b/jpeg/include

修改

$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo

$(CC) $(CFLAGS) -ljpeg-L/home/wu/jpeg-6b/jpeg/lib-o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo

2、没安装 安装相关库 先用yum 或apt-get search以确定库的确切名称 然后安装 案例: sudo yum searchlibxtst-dev sudo yum install libxtst-devel 此问题所感 俗话说:对症下药,连别人是什么病都不知道,就开始给人开药方岂不可笑?解决问题前先花时间研究问题。每个问题都有很多中可能的原因,以上这个简单的例子就可以说明问题,善于从一些错误提示和相关内容的字里行间去深入问题,对问题了解的越清楚,就越有利于定位问题,定位的越准就越利于快速解决问题。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。