CentOSの非標準libディレクトリにあるldconfig関連の問題

CentOSの非標準libディレクトリにあるldconfig関連の問題

/usr私はメインドライブ(などを含む/usr/local)にストレージスペースがほとんどない仮想マシン(CentOS 5.3)で作業しています。ほとんどのストレージスペースは、にマウントされている別々のドライブで使用できます/mnt。そのため、このドライブにデフォルトのインストールディレクトリ(bin、、、includeなどlibのサブディレクトリを含む)を作成し、そこにライブラリをインストールしました。

[standage@vm142-46 ~]$ ls -lhp /mnt/lib
total 33M
-rw-r--r-- 1 standage iplant-everyone 21M Dec 21 16:29 libgenometools.a
-rwxr-xr-x 1 standage iplant-everyone 13M Dec 21 16:29 libgenometools.so

その後、私が書いたコードを使ってライブラリに接続しようとしましたが、次のメッセージが表示されました。

/usr/bin/ld: cannot find -lgenometools

ldconfig私が作成した新しいインストールディレクトリを更新していないことを知って、それを追加して実行/mnt/lib/etc/ld.so.confました/sbin/ldconfig。ただし、コードを再接続しようとすると同じエラーが発生しました。

結局、シンボリックリンクを作成してライブラリをリンクできました/usr/local/lib64...

[standage@vm142-46 ~]$ sudo ln -s /mnt/lib/libgenometools.a /usr/local/lib64
[standage@vm142-46 ~]$ sudo ln -s /mnt/lib/libgenometools.so /usr/local/lib64

...しかし、元の問題は実際には解決されません。ただダックテープソリューションです。最初は何が間違っていて、インストールされたライブラリにどのようにリンクしますか?

ベストアンサー1

/etc/ld.so.confランタイムがライブラリを探している動的リンカーにのみ影響します。実行可能ファイルをビルドするときは、ldライブラリパスを見つけることが重要です。これを指定する一般的な方法はオプションを渡すことです-L。ほとんどのconfigureスクリプトには-L追加オプションを渡す方法があります。通常、デフォルトの検索パスを変更する方法はありませんld。 gcc仕様ファイルの変更を考慮することもできますが、/usrここでは/etc

設定が少しぎこちないことを考えると、見たいと思うかもしれません。共同設置上。 CentOSがフェデレーションマウントの可能性を提供しているかどうかを/mnt知る/usr

おすすめ記事