为什么 lsof 不显示 libstdc++已加载到 Mac OS X 上?
我有一个我知道使用 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 中的库。
I have an application that I know uses libstdc++, but even as the super user, I cannot see /usr/lib/libstdc++.6.0.9.dylib on my Mac OS X 10.6 Snow Leopard system?
lsof | grep libstdc++
If I use DYLD_LIBRARY_PATH to use my own copy of libstdc++ it shows up in the full path while my app is running:
fooo 1701 foooo txt REG 14,5 2439888 54431 /path/to/shared/libstdc++.6.0.9.dylib
This is after a fruitless google search. On a linux system, any user can see which applications are using the library in /usr/lib.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我猜原因是 libstdc++ 在 OS X 中被视为系统库,并且与其他用户库的处理方式不同。
如果您希望系统像用户提供的库一样加载它,请使用类似:
man dyld 来获取有关上述环境设置含义的更多信息。
I guess the reason is libstdc++ is considered a system library in OS X and is treated differently than other user libraries.
If you want the system to load it just like a user supplied library use something like:
man dyld
for more information on what the above environment setting means.