GNU/Linux >> Linux の 問題 >  >> Linux

ライブラリがパスにあるかどうかを調べる

ldconfig アクセスできるすべてのライブラリを一覧表示できます。これらのライブラリもそのキャッシュに保存されます。

/sbin/ldconfig -v -N 通常のすべてのライブラリ パスをクロールし、利用可能なすべてのライブラリを一覧表示しますが、キャッシュを再構築する必要はありません (非 root ユーザーの場合は不可能です)。 LD_LIBRARY_PATH のライブラリは考慮されませんが (この投稿が編集前に述べたこととは逆です)、以下の行を使用して追加のライブラリをコマンドラインに渡すことができます:

/sbin/ldconfig -N -v $(sed 's/:/ /g' <<< $LD_LIBRARY_PATH)

gcc で簡単なテスト プログラムをコンパイルし、ライブラリをリンクできます。次に、使用されているライブラリをlddで確認できます。私はこのようなものを使用します:

echo "int main(){}" | gcc -x c++ -Wl,--no-as-needed -lmylib - && ldd a.out | grep mylib

-Wl,--no-as-needed ライブラリからのシンボルが使用されないため、リンカがライブラリを破棄するのを防ぎます。


: をグローバルに (スペース) に置き換えます LD_LIBRARY_PATH

/sbin/ldconfig -N -v $(sed 's/:/ /g' <<< $LD_LIBRARY_PATH)

Linux
  1. CでのLinuxソフトウェアライブラリを理解するためのガイド

  2. 実行時にダイナミックライブラリの実行可能ファイルの負荷を確認する方法は?

  3. ファイルのURLを探す

  1. ld が既存のライブラリを見つけることができません

  2. C で実行可能ファイルの場所を見つけるにはどうすればよいですか?

  3. プログラムがデッドロック状態にあることを検出して見つける方法は?

  1. -execが失敗した場合の検索から抜け出しますか?

  2. パッケージがインストールされているパスを見つける– CentOS

  3. Linux での find コマンドの結果の md5sum の出力