インストールしようとしています。生バッファRedhatシステムのライブラリ(Amazon EC2のLinuxバージョン)は問題なく実行しましたが、configure
ライブラリがRedhatに含まれていないため、ディレクトリを追加してからリンクを更新しました。make
make install
.so
/usr/local/lib
/usr/local/lib
/etc/ld.so.conf
ldconfig
私の問題は、何らかの理由でディレクトリにあるにもかかわらずldconfig
選択されていないことです。libprotobuf.so
/usr/local/lib
出力は次のとおりですls -l /usr/local/lib
。
total 61336
-rw-r--r-- 1 root root 17654940 Mar 26 02:39 libprotobuf.a
-rwxr-xr-x 1 root root 994 Mar 26 02:39 libprotobuf.la
-rw-r--r-- 1 root root 1948106 Mar 26 02:39 libprotobuf-lite.a
-rwxr-xr-x 1 root root 1029 Mar 26 02:39 libprotobuf-lite.la
lrwxrwxrwx 1 root root 25 Mar 26 02:39 libprotobuf-lite.so -> libprotobuf-lite.so.7.0.0
lrwxrwxrwx 1 root root 25 Mar 26 02:39 libprotobuf-lite.so.7 -> libprotobuf-lite.so.7.0.0
-rwxr-xr-x 1 root root 893083 Mar 26 02:39 libprotobuf-lite.so.7.0.0
lrwxrwxrwx 1 root root 20 Mar 26 02:39 libprotobuf.so -> libprotobuf.so.7.0.0
lrwxrwxrwx 1 root root 20 Mar 26 02:39 libprotobuf.so.7 -> libprotobuf.so.7.0.0
-rwxr-xr-x 1 root root 7326093 Mar 26 02:39 libprotobuf.so.7.0.0
-rw-r--r-- 1 root root 25883264 Mar 26 02:39 libprotoc.a
-rwxr-xr-x 1 root root 1010 Mar 26 02:39 libprotoc.la
lrwxrwxrwx 1 root root 18 Mar 26 02:39 libprotoc.so -> libprotoc.so.7.0.0
lrwxrwxrwx 1 root root 18 Mar 26 02:39 libprotoc.so.7 -> libprotoc.so.7.0.0
-rwxr-xr-x 1 root root 9071740 Mar 26 02:39 libprotoc.so.7.0.0
drwxr-xr-x 2 root root 4096 Mar 26 02:39 pkgconfig
出力は次のとおりですldconfig -v | grep protobuf
。
libprotobuf.so.7 -> libprotobuf.so.7.0.0
libprotobuf-lite.so.7 -> libprotobuf-lite.so.7.0.0
libprotobuf
リンカーで認識されるにはどうすればよいですか?
編集する:ライブラリを直接リンクしようとすると、次のエラーが発生します。
ldconfig: Ignored file /usr/local/lib/libprotobuf.so since it is not a regular file.
コピーしようとしたため、シンボリックリンクではなくなり、エラーは修正されましたが、libprotobuf.so.7.0.0
リンカlibprotobuf.so
はまだそのリンクを見つけることができませんlibprotobuf
。
答え1
ld.so.conf
ランタイム動的リンカーでのみ使用されます。ld
私たちはこれをまったく行いません。/usr/local/lib
これをリンカ検索ディレクトリに渡す必要があります(ld
直接呼び出す場合は直接またはコンパイラを介して)。
ld
GCC (または clang およびおそらく他の多くのコンパイラ) の場合、この-L
フラグを使用してこれを行うことができます。