Почему lsof не показывает, что libstdc ++ загружен в Mac OS X? - PullRequest
1 голос
/ 09 ноября 2010

У меня есть приложение, которое, как мне известно, использует libstdc ++, но даже как суперпользователь, я не вижу /usr/lib/libstdc++.6.0.9.dylib в моей системе Mac OS X 10.6 Snow Leopard?

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.

1 Ответ

2 голосов
/ 09 ноября 2010

Я думаю, причина в том, что libstdc ++ считается системной библиотекой в ​​OS X и обрабатывается иначе, чем другие пользовательские библиотеки.

Если вы хотите, чтобы система загружала его так же, как пользовательская библиотека, используйте что-то вроде:

export DYLD_SHARED_REGION=avoid
./your_program_name

man dyld для получения дополнительной информации о том, что означает вышеуказанная настройка среды.

...