リンク用のライブラリ パスの優先指定を指定する
g と ld を使用して C プログラムをコンパイルする場合、リンク用の優先ライブラリ パスの指定が困難になる場合があります。同じ名前のライブラリが /usr/local/lib などの標準ディレクトリに存在する場合、ld は直接指定したライブラリではなく、そのライブラリをデフォルトで使用することがあります。
この問題を解決するには、いくつかの方法があります。採用:
-
拡張 LD_LIBRARY_PATH: 目的のライブラリへのパスを LD_LIBRARY_PATH に追加すると、リンカはそのディレクトリ内での検索を優先します。ただし、この方法では、セキュリティとパフォーマンスの問題が生じる可能性があります。
-
-rpath オプションを使用します: gcc の -Wl,-rpath,$(DEFAULT_LIB_INSTALL_PATH) オプションを使用すると、ランタイム ライブラリの検索パスを指定できます。 。これにより、デフォルトの検索ディレクトリがオーバーライドされ、指定されたパスを最初に検索するようにリンカに指示されます。
一時的な解決策の場合、または LD_LIBRARY_PATH の永続的な変更を避けるために、次のオプションを検討できます:
-
LD_LIBRARY_PATH 環境変数を設定する: この方法では、実行可能ファイルを呼び出す前に、目的のライブラリ ディレクトリを指すように LD_LIBRARY_PATH 環境変数を設定します。
-
既知のライブラリを確認する:コマンド /sbin/ldconfig -p | grep [ライブラリ名] は、リンカーに対する既知のライブラリをリストします。
-
リンクされたライブラリの識別: ldd [実行可能ファイル] コマンドは、特定のアプリケーションで使用されるライブラリを表示します。
以上がg と ld でリンク用の優先ライブラリ パスを指定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。