ライブラリをコンパイルし、実行する必要があります。ただし、ライブラリや他のシステムファイルをldconfig
変更しないでください。/etc/ld.so.conf
他の場所でキャッシュを生成し、選択したプログラムをコンパイルするときにのみ表示されるようにすることはできますか?または、LD_LIBRARY_PATH
この目的のために手動で設定する必要がありますか?LD_RUN_PATH
答え1
次の-f
オプションを確認できます。LD構成:
-fカンファレンス
/etc/ld.so.conf の代わりに conf を使用してください。
実行する場合:
ldconfig -f custom.conf
ユーザーに十分な権限があれば修正します。read /etc/ld.so.cache
、他のファイルから読み取ることはできないと思います ld
。/etc/ld.so.cache
システムファイルを変更したくないので、次のことができます。
gcc -W -Wall -L/path_to_your_library -lyour_library test.c -o testo
testo.cを構築
それから:
export LD_LIBRARY_PATH=/path_to_your_library
デバッグヘルプを設定しLD_LIBRARY_PATH
、最新バージョンのライブラリを実行してみても、一般的な開発環境設定と展開での使用は悪いと見なされます。もっと確認できますここ。
別のアプローチを使用できますrpath
。
unset LD_LIBRARY_PATH
gcc -L/path_to_your_library -Wl,-rpath=/path_to_your_library -W -Wall -o testo testo.c -lyour_library
この方法rpath
では、各プログラムが共有ライブラリの場所を個別に一覧表示できます。欠点:共有ライブラリは固定場所にインストールする必要があります。また、テストしていませんが、ライブラリがNFSマウントを参照している場合は問題になる可能性があります。