Почему lsof не показывает, что libstdC++ загружен в Mac OS X?
У меня есть приложение, которое, как я знаю, использует libstdC++, но даже как суперпользователь, я не вижу /usr/lib/libstdc++.6.0.9.dylib в моей системе Mac OS X 10.6 Snow Leopard?
лсоф | 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 ответ
Я предполагаю, что причина в том, что libstdC++ считается системной библиотекой в OS X и обрабатывается иначе, чем другие пользовательские библиотеки.
Если вы хотите, чтобы система загружала его так же, как пользовательскую библиотеку, используйте что-то вроде:
export DYLD_SHARED_REGION=avoid
./your_program_name
man dyld
для получения дополнительной информации о том, что означает вышеуказанная настройка среды.