Что делает флаг компоновщика -all_load? - PullRequest
121 голосов
/ 25 мая 2010

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

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

Может ли кто-нибудь помочь мне с этим?

Спасибо

1 Ответ

142 голосов
/ 25 мая 2010

Это, вероятно, связано с этой технической запиской 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 должен сопровождаться путем к архиву, и каждый объектный файл в этом архиве будет загружен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...