/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

相关推荐
ONLYOFFICE2 分钟前
ONLYOFFICE成为Linux操作系统 – Winux的预装办公套件
linux·运维·服务器
mounter6257 分钟前
从内核安全到可编程基础设施:Meta 的 eBPF 实践与形式化验证探索
linux·ebpf·linux kernel·kernel
新时代牛马11 分钟前
嵌入式 Linux WiFi 框架完整篇:从cfg80211、mac80211 到wpa_supplicant
linux·运维·服务器
吴声子夜歌18 分钟前
Linux命令——打印
linux·运维·服务器
企鹅的蚂蚁22 分钟前
Linux 开发板串口调试:picocom 从识别到退出的完整用法
linux·运维·服务器
bksczm35 分钟前
从 “什么是 MySQL“ 到库与表的完整操作(MySQL基础篇)
linux·数据库·mysql
企鹅的蚂蚁1 小时前
LubanCat RK3588 实时内核移植第一步:先确认硬件与系统版本
linux·lubancat·嵌入式linux·freempt_rt
是个西兰花1 小时前
网络基础1
linux·网络·c++·智能路由器
2601_962299881 小时前
Python编写Linux命令指南
linux·python·开发·命令·指南
此冬歌咏1 小时前
自动化服务器运维监控系统(python+shell)
linux·运维·服务器·开发语言·python·自动化