我有一个我知道使用 libstdc++ 的应用程序,但即使作为 super 用户,我在我的 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 中的库。
最佳答案
我猜原因是 libstdc++ 在 OS X 中被认为是一个系统库,与其他用户库的处理方式不同。
如果您希望系统像用户提供的库一样加载它,请使用类似的东西:
export DYLD_SHARED_REGION=avoid
./your_program_name
man dyld
以获取有关上述环境设置含义的更多信息。
关于c++ - 为什么 lsof 不显示 libstdc++ 已加载到 Mac OS X 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4137367/