Какой тип Mach-O мне следует использовать в проекте iOS Objective-C?

Что такое тип Mach-O в настройке сборки в Xcode? и на что он должен быть установлен?

он имеет следующие параметры: "Исполняемый файл", "Динамическая библиотека", "Пакет", "Статическая библиотека", "Перемещаемый объектный файл".

У меня была ошибка "Apple Mach-O Linker Error Group", так как я изменил ее с Исполняемый на статическую библиотеку, моя ошибка исчезла, я хочу знать, хорошо, что я изменил ее? и что означают все эти варианты, чтобы я не столкнулся с еще одной ошибкой в ​​будущем.

1 ответ

Решение

Для более подробной информации: Сборка файлов Mach-O и Справочник по настройке сборки XCode

Установить Mach-O Type [Формат Mach-O] определяетповедениекомпоновщика

Framework target -> Build Settings -> Mach-O Type
  • Executable- Не связано. Используется для создания запускаемой программы -Application. Application target это настройка по умолчанию
  • Bundle - loadable bundle- время выполнения связано. iOS теперь поддерживает толькоTesting Bundle target где по умолчанию создается Loadable bundle.
    System -> Testing Bundle -> tested binary. РасположениеTesting Bundle будет зависеть от целевого, статического или динамического двоичного файла...
  • Dynamic Library - Время загрузки / работы связано.
    • Framework target - Dynamic Library является настройкой по умолчанию для создания Dynamic framework
  • Static Library - Время компиляции (время сборки) связано.
    • Static Library target - Static Library является настройкой по умолчанию для создания Static library
    • Framework target - Static Library создать Static framework
  • Relocatable Object File- Время компиляции (время сборки) связано. Это своего родаStatic Libraryрасширение. Все.oфайлы будут повторно связаны во время сборки, и будет создан новый отдельный объектный файл. Например, его можно использовать дляSymbols hidden by default. Проверить просто с помощьюotool [О программе] команда
//Relocatable Object File
otool -L "libRelocatable.a"
Archive : /libRelocatable.a
/libRelocatable.a(relocatable_object_file.o):
/libRelocatable.a(MyClass.o):

//Static library
otool -L "/libStatic.a"
/libStatic.a:

[Словарь]
[Фреймворк статический и динамический]

Другие вопросы по тегам