Какой тип 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: