3.17.10 Параметры Darwin
Эти параметры определены для всех архитектур, работающих под операционной системой Darwin.
FSF GCC на Darwin не создаёт «fat» объектные файлы; он создаёт объектный файл для единственной архитектуры, на которую настроен GCC. Apple's GCC на Darwin создаёт «fat» файлы, если используется несколько параметров -arch; это делается путём многократного запуска компилятора или компоновщика и объединения результатов с помощью lipo.
Тип создаваемого файла (например, «ppc7400» или «ppc970» или «i686») определяется флагами, которые указывают ISA, на которую настроен GCC, например, -mcpu или -march. Параметр -force_cpusubtype_ALL может быть использован для переопределения этого.
Инструменты Darwin ведут себя по-разному при несоответствии ISA. Ассемблер, as, допускает только использование инструкций, которые допустимы для типа файла, который он генерирует, поэтому нельзя помещать 64-битные инструкции в объектный файл «ppc750». Компоновщик для общих библиотек, /usr/bin/libtool, завершается с ошибкой, если его попросить создать общую библиотеку с менее жёстким типом, чем входные файлы (например, попытка поместить объектный файл «ppc970» в библиотеку «ppc7400»). Компоновщик для исполняемых файлов, ld, тихо присваивает исполняемому файлу тип с самыми жёсткими ограничениями из всех входных файлов.
-
-Fdir - Добавляет директорию фреймворка dir в начало списка директорий, которые будут просматриваться для поиска заголовочных файлов. Эти директории чередуются с теми, которые указаны параметрами
-Iи просматриваются слева направо.Директория фреймворка — это директория, содержащая фреймворки. Фреймворк — это директория, содержащая директорию
Headersи/илиPrivateHeaders, которая заканчивается на.framework. Имя фреймворка — это имя этой директории без.framework. Заголовки, связанные с фреймворком, находятся в одной из этих двух директорий, причемHeadersищется первой. Подфреймворк — это директория фреймворка, которая находится в директорииFrameworksфреймворка. Включения заголовков подфреймворков могут появляться только в заголовке фреймворка, содержащего подфреймворк, или в заголовке соседнего подфреймворка. Два подфреймворка являются соседними, если они находятся в одном фреймворке. Подфреймворк не должен иметь такое же имя, как фреймворк; если это нарушается, выводится предупреждение. В настоящее время подфреймворки не могут иметь подфреймворки; в будущем этот механизм может быть расширен для поддержки этого. Стандартные фреймворки можно найти в/System/Library/Frameworksи/Library/Frameworks. Пример включения выглядит так:#include <Framework/header.h>, гдеFrameworkобозначает имя фреймворка, аheader.hнаходится в директорииPrivateHeadersилиHeaders. -
-iframeworkdir - Как и
-Fза исключением того, что директория рассматривается как системная. Основное отличие между этим-iframeworkи-Fзаключается в том, что с-iframeworkкомпилятор не предупреждает о конструкциях, содержащихся в заголовочных файлах, найденных через dir. Этот параметр действителен только для языков семейства C. -gused- Генерировать отладочную информацию для используемых символов. Для формата отладки stabs это включает
-feliminate-unused-debug-symbols. По умолчанию ВКЛЮЧЕНО. -gfull- Генерировать отладочную информацию для всех символов и типов.
-
-mmacosx-version-min=version - Самая ранняя версия MacOS X, на которой будет выполняться этот исполняемый файл, — version. Типичные значения version включают
10.1,10.2, и10.3.9.Если компилятор по умолчанию использует системные заголовки, то значение по умолчанию для этого параметра — системная версия, на которой работает компилятор, в противном случае значение по умолчанию — выбор, совместимый с как можно большим количеством систем и кодовых баз.
-mkernel- Включить режим разработки ядра. Параметр
-mkernelустанавливает-static,-fno-common,-fno-use-cxa-atexit,-fno-exceptions,-fno-non-call-exceptions,-fapple-kext,-fno-weakи-fno-rtti, где применимо. Этот режим также устанавливает-mno-altivec,-msoft-float,-fno-builtinи-mlong-branchдля целей PowerPC. -mone-byte-bool- Переопределить значения по умолчанию для ‘
bool’, чтобы ‘sizeof(bool)==1’. По умолчанию ‘sizeof(bool)’ равно ‘4’ при компиляции для Darwin/PowerPC и ‘1’ при компиляции для Darwin/x86, поэтому этот параметр не влияет на x86.Предупреждение: переключатель
-mone-byte-boolзаставляет GCC генерировать код, не совместимый с двоичным кодом, сгенерированным без этого переключателя. Использование этого переключателя может потребовать повторной компиляции всех других модулей в программе, включая системные библиотеки. Используйте этот переключатель для соответствия нестандартной модели данных. -
-mfix-and-continue-ffix-and-continue-findirect-data - Генерировать код, подходящий для быстрой разработки, например, для того, чтобы позволить GDB динамически загружать
.oфайлы в уже запущенные программы.-findirect-dataи-ffix-and-continueпредоставляются для обратной совместимости. -all_load- Загружает все члены статических архивных библиотек. Более подробную информацию см. в справочной странице man ld(1).
-arch_errors_fatal- Приводит к тому, что ошибки, связанные с файлами с неправильной архитектурой, становятся фатальными.
-bind_at_load- Помечает выходной файл так, что динамический компоновщик свяжет все неопределённые ссылки при загрузке или запуске файла.
-bundle- Создаёт файл в формате Mach-o bundle. Более подробную информацию см. в справочной странице man ld(1).
-
-bundle_loaderexecutable - Этот параметр задаёт executable, который будет загружать файл выходных данных сборки, к которому применяется компоновка. Более подробную информацию см. в справочной странице man ld(1).
-dynamiclib- При передаче этого параметра GCC генерирует динамическую библиотеку вместо исполняемого файла при компоновке, используя команду Darwin
libtool. -force_cpusubtype_ALL- Это заставляет выходной файл GCC иметь подтип ALL, вместо подтипа, управляемого параметрами
-mcpuили-march. -
-allowable_clientclient_name-client_name-compatibility_version-current_version-dead_strip-dependency-file-dylib_file-dylinker_install_name-dynamic-exported_symbols_list-filelist-flat_namespace-force_flat_namespace-headerpad_max_install_names-image_base-init-install_name-keep_private_externs-multi_module-multiply_defined-multiply_defined_unused-noall_load-no_dead_strip_inits_and_terms-nofixprebinding-nomultidefs-noprebind-noseglinkedit-pagezero_size-prebind-prebind_all_twolevel_modules-private_bundle-read_only_relocs-sectalign-sectobjectsymbols-whyload-seg1addr-sectcreate-sectobjectsymbols-sectorder-segaddr-segs_read_only_addr-segs_read_write_addr-seg_addr_table-seg_addr_table_filename-seglinkedit-segprot-segs_read_only_addr-segs_read_write_addr-single_module-static-sub_library-sub_umbrella-twolevel_namespace-umbrella-undefined-unexported_symbols_list-weak_reference_mismatches-whatsloaded - Эти параметры передаются Darwin компоновщику. Подробное описание их содержится в справочной странице Darwin компоновщика.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Darwin-Options.html