1

libstdc++ を使用していることがわかっているアプリケーションがありますが、スーパー ユーザーであっても、Mac OS X 10.6 Snow Leopard システムで /usr/lib/libstdc++.6.0.9.dylib が表示されません。

lsof | grep libstdc++

DYLD_LIBRARY_PATH を使用して libstdc++ の独自のコピーを使用すると、アプリの実行中にフル パスに表示されます。

foo 1701 foo txt REG 14,5 2439888 54431 /path/to/shared/libstdc++.6.0.9.dylib

これは実りのないグーグル検索の後です。Linux システムでは、すべてのユーザーが /usr/lib でライブラリを使用しているアプリケーションを確認できます。

4

1 に答える 1

2

その理由は、libstdc++がOSXのシステムライブラリと見なされ、他のユーザーライブラリとは異なる方法で処理されるためだと思います。

ユーザー提供のライブラリのようにシステムにロードさせたい場合は、次のようなものを使用します。

export DYLD_SHARED_REGION=avoid
./your_program_name

man dyld上記の環境設定の意味の詳細については。

于 2010-11-09T19:58:52.230 に答える