我应该安装什么来纠正“ld:找不到-lgbm和-linput”,以便我可以编译Rust程序?

我应该安装什么来纠正“ld:找不到-lgbm和-linput”,以便我可以编译Rust程序?

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

我安装了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

所以我想我也需要一些叫做linputand的东西lgbm,只是我找不到那些,dnf search而且我在谷歌上空手而归。

答案1

您收到的是来自链接器 ( ld) 的错误消息,该消息抱怨您正在查找的库不可用。

诸如此类的消息/usr/bin/ld: cannot find -linput实际上意味着它正在寻找名为 的文件libinput.so。该-l标志是一个命令行参数( told或 to gcc),它期望后面跟随库名称,然后使用库名称来形成文件名,其中包括lib前缀和.so后缀(对于动态可加载库,这通常是用于大多数发行版,包括 Fedora。)

所以事实证明你需要的文件是libinput.solibgbm.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

如果您不知道确切的目录,dnf provides '*/libinput.so'如果您对要搜索的文件知之甚少(并且愿意对更多搜索结果进行排序以查找有用的内容),则还可以使用 或其他通配符。

就您而言,您似乎需要的是:

$ sudo dnf install libinput-devel mesa-libgbm-devel

从那时起,dnf还应该带来您需要的所有其他依赖项。希望这就是您构建正在构建的软件时所缺少的一切。但是,如果您还遇到缺少库的问题,则使用此信息您也许能够找到提供这些库的软件包(假设它们在 Fedora 中可用)。

答案2

如果这是我发现的与此相关的同一件事:

https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html

lightGBM 是一个使用基于树的学习算法的梯度增强框架。它被设计为分布式且高效的,具有以下优点:

  • 训练速度更快,效率更高。
  • 降低内存使用量。
  • 更好的准确性。
  • 支持并行和 GPU 学习。
  • 能够处理大规模数据。

在 Linux 上,LightGBM 可以使用 CMake 和 gcc 或 Clang 构建。

安装 CMake。

运行以下命令:

git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM
mkdir build ; cd build
cmake ..
make -j4

相关内容