交叉编译错误:小心符号链接

2023-09-21 20:42:33

交叉编译在进行到链接环节时出现找不到库文件的错误,如下:
在这里插入图片描述
一般来说,链接时出现库查找不到则需要将库路径添加到link_directories或者target_link_directories, 这里说查找不到libblas.so.3和liblapack.so.3,那么查找这两个库的路径后发现,这个库路径是实实在在的添加到了link_directories中的,那么为什么依然找不到这个库呢?

那么接下来可以怀疑这个库是否损坏或者没有权限,因此,进入到这个库路径下,使用ls -l libblas.so.3, 发现权限没问题,然后我想检查这个库文件的实际内容,与是使用readelf命令:
在这里插入图片描述结果显示没有这个文件,这个就很奇怪,明明文件是存在的,而且也具备权限,为什么这个库就没内容呢?
与是使用file命令检查文件的具体格式信息:
在这里插入图片描述出现了 broken symbolic link to /etc/alternatives/libblas.so-aarch64-linux-gnu, 一个被破坏的链接符号,原来这仅仅是个链接符号而不是库文件实体,其链接的对象是/etc/alternatives/libblas.so.3-aarch64-linux-gnu,这个实际指的是ARM系统中的路径,而我并没有将这个目录从ARM系统中拷贝到X86主机中来,因此这个符号链接自然就没法使用了。

同时,虽然符号链接指向了/etc/alternatives/libblas.so.3-aarch64-linux-gnu,但是不能代表/etc/alternatives/libblas.so.3-aarch64-linux-gnu就是真正的库文件,它依然可能是个符号链接,因此远程登陆到ARM系统中使用file命令进行检查(readlink命令也可以),结果如下:
在这里插入图片描述果然,这个玩意也是一个指向/usr/lib/aarch64-linux-gnu/atlas/libblas.so的符号链接,同样检查/usr/lib/aarch64-linux-gnu/atlas/libblas.so的类型:在这里插入图片描述可以看到它指向的是同目录下的libblas.so.3.10.3,因此实际我们需要的库文件就在/usr/lib/aarch64-linux-gnu/atlas中。
将这个路径添加到link_directories,编译顺利完成。

更多推荐

正确设置PyTorch训练时使用的GPU资源

背景:最近在使用HuggingFace的transformersapi来进行预训练大模型的微调,机器是8卡的GPU,当我调用trainer.train()之后,发现8个GPU都被使用了,因为这个机器上面还有其他人跑的模型,当我进行训练的时候,GPU的使用率就接近了100%,这样导致其他人的模型响应速度特别的慢,因为他们

微信小程序如何刷新当前页面

微信小程序是一种快速发展的移动应用程序开发平台,它提供了许多功能和特性,使开发者能够轻松创建功能丰富的小程序。在开发小程序时,有时我们需要刷新当前页面来更新数据或重新加载页面内容。本文将解释如何在微信小程序中刷新当前页面的代码。引言微信小程序的流行使得越来越多的开发者将其作为构建移动应用的首选平台。然而,与传统的网页开

快速了解Apipost

随着数字化转型的加速,API(应用程序接口)已经成为企业间沟通和数据交换的关键。而在API开发和管理过程中,API文档、调试、Mock和测试的协作显得尤为重要。Apipost正是这样一款一体化协作平台,旨在解决这些问题,提高API开发效率和质量。Apipost提供API文档管理功能,让后端开发人员可以在开发完接口调试的

cookie信息无法获取问题研究

背景在oneapi这个前后端都有的开源项目中,我想接入chatnextweb到oneapi的后端。由于需要二开chatnextweb,添加登录注册功能,考虑到java后端的性能问题和内存占用,决定不重启写个服务,而是将登录注册接入到oneapi的登录注册api,没错,和oneapi的前端公用一套登录注册熬了个大夜后,终

GLTF编辑器:在线模型材质编辑工具

GLTF编辑器是一个功能强大、易于使用的在线3D模型编辑和查看工具,它支持多种格式的3D模型导入并将模型导出为GLB格式,除了可以对3D模型进行基本属性的修改之外,还支持对模型原点重置以及模型材质纹理修改。对于3D开发者和设计师来说,GLTF编辑器是一个非常有用的工具,可以帮助他们更方便地处理3D模型数据。1、首先介绍

VR全景技术在教育中的应用:VR教学的“因材施教”

随着科技的不断进步和发展,VR全景技术在教育领域的应用,给传统教育模式带来了新的变革和机遇,同时也促进了教育的创新和进步。VR教学模式可以打破传统教育的限制,通过模拟各种场景,让学生身临其境地学习多样化知识,感受不同国家的风土人情、拓展自身视野,这种具备沉浸感的学习体验可以很好的激发学生的学习兴趣和动力。VR教学可以构

vr飞机驾驶舱模拟流程3D仿真演示加大航飞安全法码

众所周知,航空航天飞行是一项耗资大、变量参数很多、非常复杂的系统工程,因此可利用虚拟仿真技术经济、安全及可重复性等特点,进行飞行任务或操作的模拟,以代替某些费时、费力、费钱的真实试验或者真实试验无法开展的场合,从而获得提高航空航天员工作效率或航空航天器系统可靠性等的设计对策。飞机飞行操作要求严、风险大且成本高,因此在真

windows RocketMQ与可视化监控平台安装

windowsRocketMQ与可视化监控平台安装安装日期2023.09.21最新版RocketMQ是一个纯Java、分布式、队列模型的开源消息中间件,搭建RocketMQ需要先配置JAVA环境变量,需要有JAVA_HOME。下载安装包进入官网选择需要的版本下载安装包(以下以5.1.3为例)。官网下载地址:官网下载编译

中秋节听夜曲,Android OpenGL 呈现周董专属的玉兔主题音乐播放器

概述前几天发现QQ音乐有个好玩的功能,为用户提供了多种播放器主题,其中原神的主题让我眼前一亮:当然,诸如换肤、主题类的功能已经屡见不鲜,但这类沉浸式播放器的听歌体验确实不错。见猎心喜,正好中秋马上就到,我也尝试整个中秋主题音乐播放器试试水。整体思路有2点:首先是技术方面,纯粹的ImageView图层堆砌来实现,渲染效率

05预测识别-依托YOLO V8进行训练模型的识别——对视频中的图片进行识别

在前面的一些章节中,我们已经讲如何准备打标签的素材、如何制作标签、如何训练以及得到我们最终需要的用于YOLO目标识别的模型。那么现在我们就要正式开始,利用我们训练得到的best.pt,这个模型文件来对图片视频进行识别。1、基本思路公安交管场景中,我们经常会遇到需要对摄像头拍到的视频中的目标进行识别,比如识别识别非机动车

【C++】C++ 引用详解 ③ ( 函数返回值不能是 “ 局部变量 “ 的引用或指针 | 函数内的 “ 局部变量 “ 的引用或指针做函数返回值无意义 )

文章目录一、函数返回值不能是"局部变量"的引用或指针1、引用通常做右值2、函数返回值特点3、函数内的"局部变量"的引用或指针做函数返回值无意义二、代码示例-"局部变量"引用或指针做函数返回值测试一、函数返回值不能是"局部变量"的引用或指针1、引用通常做右值之前使用引用时,都是作为右值使用,引用只在声明的同时进行初始化时

热文推荐