Во-первых, otool -L
- это более простой способ просмотреть список библиотек, на которые ссылается исполняемый файл.
Во-вторых, если вы примените otool -L
к libSystem.B.dylib, вы увидите, что это, в свою очередь, зависит от нескольких библиотек в / usr / lib / system. Одним из них является libsystem_ c .dylib, который является библиотекой C. Это определяет printf
.
Возвращаясь к выводу otool -l
для libSystem.B.dylib, вы увидите, что эти зависимости задаются командой загрузки LC_REEXPORT_DYLIB
. Вот как символы в других библиотеках экспортируются без фактических записей в таблице символов для них.
Я полагаю, возможно, это ошибка в nm
, что она не показывает реэкспортированные символы.