/usr/bin/ld: cannot find -lXXXX

问题描述:

/usr/bin/ld: cannot find -lxkbcommon
          /usr/bin/ld: cannot find -lxkbcommon
          /usr/bin/ld: cannot find -linput
          /usr/bin/ld: cannot find -lgbm
          collect2: error: ld returned 1 exit status

问题原因:

此问题表示链接器(ld)想要查找的库(library)没有找到。

/usr/bin/ld: cannot find -linput 之类的消息实际它正在寻找一个名为 libinput.so 的文件。 -l 标志是一个命令行参数(对于 ld 或 gcc),期望库名称跟随,然后库名称用于形成包含 lib 前缀和 .so 后缀的文件名(用于动态加载库,这是大多数发行版中通常使用的库,包括 Fedora。
所以需要的文件是 libinput.so 和 libgbm.so。

解决方案:

然后,可以使用 dnf 提供来搜索这些文件。假设您使用的是 64 位发行版,这些库将位于 /usr/lib64 中,因此完整的命令将是:
$ dnf provides /usr/lib64/libinput.so
libinput-devel-1.12.6-3.fc30.x86_64 : Development files for libinput
Repo        : rawhide
Matched from:
Filename    : /usr/lib64/libinput.so

$ dnf provides /usr/lib64/libgbm.so
mesa-libgbm-devel-19.0.0~rc7-1.fc30.x86_64 : Mesa libgbm development package
Repo        : rawhide
Matched from:
Filename    : /usr/lib64/libgbm.so
如果不知道确切的目录,也可以使用
 dnf provides '*/libinput.so' 
或其他通配符。

现在需要安装的是:
$ sudo dnf install libinput-devel mesa-libgbm-devel
从那时起, dnf 还应该带来您需要的所有其他依赖项。希望这是您构建您正在构建的软件所缺少的一切。但是,如果您还有更多缺少库的问题,使用此信息您可能能够找到提供这些库的软件包,假设它们在 Fedora 中可以使用。

最后一种方式:去Libhs.so.5()(64bit) Download (RPM)pkgs.org网站或者kernel | Package Info | kojikoji中,寻找需要下载的库文件,通过rpm的方式,下载需要的库文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值