特定の実行可能ファイルのリンクライブラリの変更(CentOs 6)

特定の実行可能ファイルのリンクライブラリの変更(CentOs 6)

次のようにリンクされた実行可能ファイルがあります。

  $ ldd a.out
        libboost_system-mt.so.1.47.0 => /usr/lib64/libboost_system-mt.so.1.47.0 (0x00007f4881f56000)
        libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f4881cfb000)
        libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f4881965000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f488175d000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4881540000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f4881239000)
.
.

libcrypto および libssl ライブラリは openssl 1.0.0-fips ライブラリです。私は1.0.1ライブラリを試してみたかったので、私のホームディレクトリにライブラリを構築しました。a.out新しいopensslライブラリに簡単に再リンクする方法はありますか?避けたい

  • 再接続する必要がありますa.out(ビルドツールが非常に複雑なため)
  • グローバル設定の変更(他の開発者がこのコンピュータで作業しているため)

ここで私が望むようにできますか?

ベストアンサー1

この特定の実装を一時的に別のライブラリに置き換えることができます。 Linuxでは、環境変数LD_LIBRARY_PATHは、標準ディレクトリセットの前にライブラリを検索する必要があるコロンで区切られたディレクトリセットです。これは、新しいライブラリをデバッグしたり、特別な目的で非標準ライブラリを使用したりするときに便利です。環境変数LD_PRELOADは、/etc/ld.so.preloadなど、標準セットを扱う機能を持つ共有ライブラリを一覧表示します。 -共有ライブラリ

ローダーを直接呼び出すこともできます。

/lib/ld-linux.so.2 --ライブラリパスpath executable

おすすめ記事