/usr/bin/ld: cannot find -l<nameOfTheLibrary>

在编译程序报了如下错误:/usr/bin/ld: cannot find -lmtcr_ul: No such file or directory

他的命名规则时"l+nameOfTheLibrary",所以我缺少一个mtcr_ul相关的库

问题原因

根本原因:还是某一个lib库文件不存在,你可以通过ld查看他需要什么库文件:

/usr/bin/ld -lmtcr_ul --verbose

bash 复制代码
==================================================
ld: mode aarch64linux
attempt to open /usr/local/lib/aarch64-linux-gnu/libmtcr_ul.so failed
attempt to open /usr/local/lib/aarch64-linux-gnu/libmtcr_ul.a failed
attempt to open /lib/aarch64-linux-gnu/libmtcr_ul.so failed
attempt to open /lib/aarch64-linux-gnu/libmtcr_ul.a failed
attempt to open /usr/lib/aarch64-linux-gnu/libmtcr_ul.so failed
attempt to open /usr/lib/aarch64-linux-gnu/libmtcr_ul.a failed
attempt to open /usr/local/lib/libmtcr_ul.so failed
attempt to open /usr/local/lib/libmtcr_ul.a failed
attempt to open /lib/libmtcr_ul.so failed
attempt to open /lib/libmtcr_ul.a failed
attempt to open /usr/lib/libmtcr_ul.so failed
attempt to open /usr/lib/libmtcr_ul.a failed
attempt to open /usr/aarch64-linux-gnu/lib/libmtcr_ul.so failed
attempt to open /usr/aarch64-linux-gnu/lib/libmtcr_ul.a failed
ld: cannot find -lmtcr_ul: No such file or directory
attempt to open /usr/local/lib/aarch64-linux-gnu/libmtcr_ul.so failed
attempt to open /usr/local/lib/aarch64-linux-gnu/mtcr_ul.a failed
attempt to open /lib/aarch64-linux-gnu/libmtcr_ul.so failed
attempt to open /lib/aarch64-linux-gnu/mtcr_ul.a failed
attempt to open /usr/lib/aarch64-linux-gnu/libmtcr_ul.so failed
attempt to open /usr/lib/aarch64-linux-gnu/mtcr_ul.a failed
attempt to open /usr/local/lib/libmtcr_ul.so failed
attempt to open /usr/local/lib/mtcr_ul.a failed
attempt to open /lib/libmtcr_ul.so failed
attempt to open /lib/mtcr_ul.a failed
attempt to open /usr/lib/libmtcr_ul.so failed
attempt to open /usr/lib/mtcr_ul.a failed
attempt to open /usr/aarch64-linux-gnu/lib/libmtcr_ul.so failed
attempt to open /usr/aarch64-linux-gnu/lib/mtcr_ul.a failed

这些lib库文件只要有一个就行,或者你有其他版本的库 可以做一下软链接

解决办法

解1

解决办法的话,找一个有这个库文件的机器,拷贝一份文件过来:比如在另外一台机器上

bash 复制代码
==================================================
ld: mode aarch64linux
attempt to open /usr/local/lib/aarch64-linux-gnu/libmtcr_ul.so failed
attempt to open /usr/local/lib/aarch64-linux-gnu/libmtcr_ul.a failed
attempt to open /lib/aarch64-linux-gnu/libmtcr_ul.so failed
attempt to open /lib/aarch64-linux-gnu/libmtcr_ul.a failed
attempt to open /usr/lib/aarch64-linux-gnu/libmtcr_ul.so failed
attempt to open /usr/lib/aarch64-linux-gnu/libmtcr_ul.a failed
attempt to open /usr/local/lib/libmtcr_ul.so failed
attempt to open /usr/local/lib/libmtcr_ul.a failed
attempt to open /lib/libmtcr_ul.so failed
attempt to open /lib/libmtcr_ul.a succeeded
/lib/libmtcr_ul.a

把/lib/libmtcr_ul.a拷贝到缺失的这个文件夹下就行

解2

找到这个库文件所属于哪个软件包

bash 复制代码
dpkg -S /lib/libmtcr_ul.a

或者直接google,找到后,直接apt install就好

但是有很多都找不到捂脸哭

解3

如果本机有相关软件包的话,可以做一下软链接

综上 第一个种方法最靠谱,但是得找一台有该软件包的环境。。。。。。

参考:

https://stackoverflow.com/questions/16710047/usr-bin-ld-cannot-find-lnameofthelibrary

相关推荐
思想觉悟20 分钟前
SEAndroid实战
android·linux·c++
前进吧-程序员1 小时前
C++20 协程实战:手写 Task、单线程调度器与 awaiter 的三个钩子
linux
Android系统攻城狮1 小时前
Linux FFmpeg深度解析之avcodec_alloc_context3调用流程与实战(十四)
linux·运维·ffmpeg·车载音视频·音视频进阶·ffmpeg音视频进阶
自由彩虹1 小时前
靶场通关15--bossplayersctf
linux·服务器·网络·安全·web安全·网络安全
叼烟扛炮1 小时前
Linux 学习笔记(四十五):Web 安全基石——Cookie、Session 与 HTTPS 原理解析
linux·前端·网络·笔记·学习·tcp/ip·安全
Linux_cy2 小时前
nginx 502 排查手册:九种原因分类、定位命令与检查顺序
linux·运维·服务器·网络·数据库·nginx·ssh
椒颜皮皮虾྅2 小时前
模型部署不再卡在环境上:DeploySharp 四大推理引擎与 Windows/Linux 离线交付实战
linux·运维·开发语言·人工智能·windows·计算机视觉·cuda
垆边人似月.3 小时前
Ubuntu 配置 Samba 共享文件夹并映射到 Windows 完整指南
linux·windows·ubuntu
Lazionr3 小时前
【Linux 修炼录】:文件查看、时间查询与查找
linux
corey933 小时前
Linux 学习 - 第十四周作业
linux·运维·学习