当前位置: 首页> 汽车> 报价 > 郑州做网站好的公司_网络建设与运维技能大赛_营销策划书案例_2023免费推广入口

郑州做网站好的公司_网络建设与运维技能大赛_营销策划书案例_2023免费推广入口

时间:2025/7/13 3:39:10来源:https://blog.csdn.net/JISIC/article/details/143184263 浏览次数: 0次
郑州做网站好的公司_网络建设与运维技能大赛_营销策划书案例_2023免费推广入口

编译的时候报错提示找不到这个文件或者目录:

排查步骤:

1.用ldd命令检查该as汇编器执行的时候依赖的库

ldd命令用于显示一个可执行文件所依赖的共享库(.so 文件)。它会列出该文件在运行时需要加载的所有动态库,以及这些库的具体路径

通过ldd命令查看得知,该汇编器在执行汇编的时候依赖libz.so.1,但是却找不到

2.然后用find命令查找该库,这个库是不是真的不存在 

通过diff命令比较结果出现的三个同名的库,前两个是一样的,但是第三个不一样。依据buildroot编译的某些特性来判断,我觉得应该是staging_dir目录下那个库是对的,因为我的交叉编译器mips-linux-gcc就是在这个目录的子目录里,所以ar汇编器依赖的动态库应该是这个。

然后对这个库的属性信息检查,可以确定该库格式正常,权限正常,说明库本身没有问题。只是编译器找不到

PS:如果全局都搜不到这个库,那么需要先自己下载

3.检查环境变量是否设置正确

我们知道,在编译的时候他会从系统默认的库路径去寻找,比如/usr/lib,/usr/local/lib/这些,我的交叉编译器是外部安装的,不属于ubuntu系统里自带的,所以需要手动去指定交叉编译器的库路径,设置库路径的系统变量名为LD_LIBRARY_PATH,你需要找到报错缺失的那个库在哪个目录下,然后在~/.bashrc或/etc/bash.bashrc或/etc/profile里指定库路径,如下图

你也可以同时指定STAGING_DIR和PATH这些系统环境变量的路径,记得设置完之后要source一下刚修改的文件让环境变量生效,然后用echo $LD_LIBRARY_PATH查看是否生效,如果没有生效,可以关掉当前终端重新打开再看下。

4.使用 sudo ldconfig 命令更新库缓存

如果前面两步都设置对了,但是再次编译的时候还是提示找不到那个库,可以用sudo ldconfig更新库缓存。因为在一些情况下,LD_LIBRARY_PATH 的设置可能不足以让链接器找到库文件 

其他说明:由于我的ubuntu是64位,x86_64架构的,但是我使用的交叉编译器是针对32位,mips架构的机器,所以需要安装一些库用来支持32位程序的编译,比如libc6-dev:i386 libncurses5-dev:i386 libstdc++6:i386等等,编译的时候他会自动去寻找必要的依赖库,如果找不到编译就会立即停止,然后报错说找不到,这个情况下大部分的找不到的库都可以通过在命令行直接下载安装,有的如果无法通过命令行直接下载到,可以尝试换源,或者更换ubuntu的软件包管理器为Snap,或者在网上搜这个包手动下载,然后再将其解压并安装到ubuntu里

关键字:郑州做网站好的公司_网络建设与运维技能大赛_营销策划书案例_2023免费推广入口

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: