Rustプログラムをコンパイルできるように "ld:can find -lgbm and -linput"を変更するには何をインストールする必要がありますか?

Rustプログラムをコンパイルできるように "ld:can find -lgbm and -linput"を変更するには何をインストールする必要がありますか?

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

だから何かが必要なようですがlinputlgbmそれも見つからなくてdnf search手ぶらでGoogleに上がっています。

答え1

ldあなたが受け取っているのは、あなたが探しているライブラリが利用できないと文句を言うリンカ()のエラーメッセージです。

このようなメッセージは/usr/bin/ld: cannot find -linput実際に名前がlibinput.so。このフラグは、ライブラリ名に従う必要がある-lコマンドライン引数(toldまたはto)であり、プレフィックスとサフィックスを含むファイル名を形成するために使用されます(動的にロード可能なライブラリの場合、通常はほとんどのライブラリで使用されます)。 Fedoraを含むディストリビューション.)gcclib.so

したがって、必要なファイルはと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

正確なディレクトリがわからない場合は、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では、CMakeとgccまたはClangを使用してLightGBMを構築できます。

CMakeをインストールします。

次のコマンドを実行します。

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

関連情報