c++ - 为什么 lsof 不显示 libstdc++ 已加载到 Mac OS X 上?

标签 c++ macos lsof

我有一个我知道使用 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/

相关文章:

c++ - 为什么这个 extern "C"函数不能使用 python ctypes?

linux - 文件删除后进程继续保留文件

linux - 为什么总是 5 个连接没有附加程序?

C++98 诉 C++11 std::set::insert 规范

c++ - 自定义内存分配-C v。C++

c++ - 按值赋值还是按引用赋值?

macos - 在我的首选项 Pane 中定义 anchor 名称

c++ - 将几个 std::list 迭代器压缩在一起

ios - 在 Adob​​e AIR for iOS 中获取唯一标识符(MAC 地址、UDID 等...)

java - 无法获取命令执行的值 "lsof"