Spec-Zone.ru › GCC 14

3.19.11 Параметры 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

Выводить отладочную информацию для всех символов и типов.

-fconstant-cfstrings

-fconstant-cfstrings является псевдонимом для -mconstant-cfstrings.

-mconstant-cfstrings

При использовании среды выполнения NeXT (по умолчанию на этих системах), переопределяет любые настройки -fconstant-string-class и заставляет литералы @"…" выводиться как постоянные строки CoreFoundation.

-mmacosx-version-min=version

Самая ранняя версия MacOS X, на которой будет работать этот исполняемый файл, — это version. Типичные значения, поддерживаемые для version, включают 12, 10.12, и 10.5.8.

Если компилятор по умолчанию был настроен на использование системных заголовочных файлов, то значение по умолчанию для этого параметра — это системная версия, на которой работает компилятор; в противном случае значение по умолчанию — это выбор, совместимый с максимальным количеством систем и баз кода.

-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

Этот параметр указывает исполняемый файл executable, который загрузит выходной файл сборки, который компонуется. См. man ld(1) для получения дополнительной информации.

-dynamiclib

При передаче этого параметра GCC создаёт динамическую библиотеку вместо исполняемого файла при компоновке, используя команду Darwin libtool.

-force_cpusubtype_ALL

Это заставляет выходной файл GCC иметь подтип ‘ALL’ вместо подтипа, управляемого параметрами -mcpu или -march.

-nodefaultrpaths

Не добавлять стандартные пути запуска для директорий библиотек компилятора в исполняемые файлы, модули или динамические библиотеки. В macOS 10.5 и более поздних версиях встроенный путь запуска добавляется по умолчанию, если пользователь не добавляет -nodefaultrpaths к строке компоновки. Пути запуска необходимы (и поэтому применяются) для сборки в macOS версии 10.11 или более поздних.

-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-14.2.0/gcc/Darwin-Options.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API