バイナリ自体にC++バイナリが動的にリンクされているライブラリの名前を確認またはアクセスする方法はありますか?実行時にC++共有依存関係を確認する(自分自身でldd)
ldd
を実行せずに、基本的にはldd
をバイナリで実行します。
このユースケースはdlopen
からdlfcn.h
を使用しています。私は"@[email protected]"
がパスに解決
void* handle = dlopen("@[email protected]", RTLD_LAZY | RTLD_GLOBAL);
を呼び出したい私はlibpython
にリンクされているC++ライブラリを持っていますが、そのlibpython3.5m.so
場合、私はなど、libpython2.7.so
、libpython3.4m.so
を知らない...
モジュールが現在動的にリンクされている現在のlibpythonに置き換えます。
これを行う方法はありますか?
libpython3.5m.so、次にlibpython3.4m.so、次にlibpython2.7.so ...が成功するまで試してみませんか? –
@ Jean-FrançoisFabre私はそれがうまくいくとは思わない...間違ったライブラリをロードする可能性がある –