dnf search linput并且dnf search lgbm不产生任何结果。我怎样才能在 Fedora 中获得这些?
我正在尝试构建一个 Rust 程序,但它无法编译,因为显然我遗漏了一些东西。它说:
= note: /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
Run Code Online (Sandbox Code Playgroud)
我安装了lxkbcommon(编辑:我实际上安装了libxkbcommon。不知道我是怎么错过的。)dnf install libxkbcommon-devel然后输出看起来像这样:
= note: /usr/bin/ld: cannot find -linput
/usr/bin/ld: cannot find -lgbm
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
所以,我想我需要的东西叫linput和lgbm为好,只有我找不到那些dnf search和我来了空手与谷歌。
您得到的是来自链接器 ( ld) 的错误消息,它抱怨您要查找的库不可用。
类似这样的消息/usr/bin/ld: cannot find -linput实际上意味着它正在寻找一个名为libinput.so. 该-l标志是一个命令行参数( told或 to gcc),它期望lib后面跟着库名,然后库名用于形成包含前缀和.so后缀的文件名(对于动态加载的库,这通常是在大多数发行版中使用,包括 Fedora。)
所以事实证明你需要的文件是libinput.so和libgbm.so。
然后您可以使用dnf provides搜索这些文件。假设您使用的是 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
Run Code Online (Sandbox Code Playgroud)
如果您不知道确切的目录,dnf provides '*/libinput.so'如果您对要搜索的文件的了解甚至更少(并且愿意对更多搜索结果进行排序以寻找有用的东西),也可以使用或 其他通配符。
在您的情况下,您似乎需要的是:
$ sudo dnf install libinput-devel mesa-libgbm-devel
Run Code Online (Sandbox Code Playgroud)
从那时起,dnf还应该带来您需要的所有其他依赖项。希望这是您构建您正在构建的软件所缺少的全部内容。但是,如果您还有缺少库的其他问题,使用此信息您可能能够找到提供这些库的软件包,假设它们在 Fedora 中可用。
| 归档时间: |
|
| 查看次数: |
6860 次 |
| 最近记录: |