Rustプログラムをコンパイルできるように "ld:can find -lgbm and -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

だから何かが必要なようですが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で利用可能であると仮定)。

おすすめ記事