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_loader executable-
Этот параметр указывает исполняемый файл, который загрузит файл выходных данных сборки, который сейчас компонуется. Дополнительную информацию см. в руководстве man ld(1).
-dynamiclib-
При передаче этого параметра GCC создаёт динамическую библиотеку вместо исполняемого файла при компоновке, используя команду Darwin libtool.
-force_cpusubtype_ALL-
Это заставляет выходной файл GCC иметь тип «ALL» вместо типа, контролируемого параметром -mcpu или -march.
-allowable_client client_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. В руководстве man компоновщика Darwin они описаны подробно.
Следующее: Параметры DEC Alpha, Предыдущее: Параметры CR16, Верхний уровень: Параметры подмоделей [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-5.5.0/gcc/Darwin-Options.html