実行ファイルを入力すると警告ウィンドウがldd
表示されますnot found
。
libCmp.so => not found
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb6ed7000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6e6c000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6e48000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6d63000)
しかし、このso
ファイルは.にあります/usr/lib
。入力すると、file libCmp.so
出力に情報がないことがわかります。buildID
libCmp.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not stripped
出力file libgcc_s.so.1
libgcc_s.so.1: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x6b7de7cba96b907b2961892b76c176b1ddbf4bee, stripped
これは問題ですか?この情報をファイルに追加するには?
ldconfig -v |grep libCmp
入ろうとしています。/usr/lib
/sbin/ldconfig: Path `/lib/arm-linux-gnueabihf' given more than once
/sbin/ldconfig: Path `/usr/lib/arm-linux-gnueabihf' given more than once
/sbin/ldconfig: /lib/arm-linux-gnueabihf/ld-2.13.so is the dynamic linker, ignoring
libCmp.so -> libCmp.so
しかし何も変わらなかった
答え1
動的リンカーランタイムバインディングを再構築します(ルートとして)。
ldconfig -v | grep libCmp
a)ライブラリを出力する必要があります(発見されたことを意味します)b)後でライブラリを見つけるために必要なシンボリックリンクを正しくインストールする必要があります。
ビルドIDが欠落しても問題になりません。
答え2
最近libCmpを追加した場合。
ルートとして、次のことを試すことができます。
ldconfig -v
ldconfigは、コマンドラインで指定されたディレクトリ、ファイル/etc/ld.so.conf、および信頼できるディレクトリ(/libおよび/usr/lib)にある最新の共有ライブラリへの必要なリンクとキャッシュを生成します。キャッシュは、ランタイムリンカー ld.so または ld-linux.so で使用されます。
-vは、ldconfigにキャッシュにリンクされているすべてのファイルを一覧表示させます。その後、出力を見てlibCmpがあるかどうかを確認できます。