Что делает-all_load флаг компоновщика?

Я не могу найти нигде, что флаг-all_load делают при компиляции кода Objective C.

У меня есть некоторые проблемы, загружающие двоичные файлы на Apple, они говорят, что это - потому что я не использовал этот флаг, но мои компиляции кода даже без него.

Кто-то может помочь мне с этим?

Спасибо

122
задан Guy Ephraim 26 September 2010 в 08:10
поделиться

1 ответ

Вероятно, это связано с этим техническим примечанием https://developer.apple.com / library / content / qa / qa1490 / _index.html

ВАЖНО: для 64-разрядных приложений и приложений iPhone OS существует ошибка компоновщика, которая не позволяет -ObjC загружать файлы объектов из статических библиотек, которые содержат только категории, но не классы. . Обходной путь - использовать флаги -all_load или -force_load. -all_load заставляет компоновщик загружать все объектные файлы из каждого архива, который он видит, даже без кода Objective-C. -force_load доступен в Xcode 3.2 и новее. Это позволяет более точно контролировать загрузку архива. За каждой опцией -force_load должен следовать путь к архиву, и каждый объектный файл в этом архиве будет загружен.

142
ответ дан 24 November 2019 в 01:26
поделиться