3.19.12 Параметры Darwin ¶
Эти параметры определены для всех архитектур, работающих под операционной системой Darwin.
FSF GCC на Darwin не создает «жирные» объектные файлы; он создает объектный файл для единственной архитектуры, для которой был скомпилирован GCC. Apple’s GCC на Darwin создает «жирные» файлы, если используется несколько параметров -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 заключается в том, что компилятор не выдает предупреждение о конструкциях, содержащихся в заголовочных файлах, найденных в 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-
Генерировать код, подходящий для быстрого цикла разработки, например, для возможности динамической загрузки файлов .o в GDB в уже запущенные программы. -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. Подробное описание параметров содержится в справочной странице компоновщика Darwin.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.5.0/gcc/Darwin-Options.html