1

我有一个我知道使用 libstdc++ 的应用程序,但即使作为超级用户,我在 Mac OS X 10.6 Snow Leopard 系统上也看不到 /usr/lib/libstdc++.6.0.9.dylib?

lsof | grep libstdc++

如果我使用 DYLD_LIBRARY_PATH 来使用我自己的 libstdc++ 副本,它会在我的应用程序运行时显示在完整路径中:

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

这是在谷歌搜索无果之后。在 linux 系统上,任何用户都可以看到哪些应用程序正在使用 /usr/lib 中的库。

4

1 回答 1

2

我猜原因是 libstdc++ 被认为是 OS X 中的系统库,其处理方式与其他用户库不同。

如果您希望系统像用户提供的库一样加载它,请使用以下内容:

export DYLD_SHARED_REGION=avoid
./your_program_name

man dyld有关上述环境设置含义的更多信息。

于 2010-11-09T19:58:52.230 回答