Spec-Zone.ru › GCC 15

3.20.12 Параметры Darwin

Эти параметры определены для всех архитектур, работающих под управлением операционной системы Darwin.

FSF GCC в Darwin не создает «универсальные» объектные файлы; он создает объектный файл для единственной архитектуры, для которой был собран GCC. Apple 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 заключается в том, что при использовании -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, если они применимы. Для целей PowerPC этот режим также задает -mno-altivec, -msoft-float, -fno-builtin и -mlong-branch.

-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

Загружать все компоненты статических архивных библиотек. Дополнительные сведения см. на странице руководства ld(1).

-arch_errors_fatal

Считать фатальными ошибки, связанные с файлами неподходящей архитектуры.

-bind_at_load

Помечать выходной файл таким образом, чтобы динамический компоновщик связывал все неопределенные ссылки при загрузке или запуске файла.

-bundle

Создать файл в формате пакета Mach-o. Дополнительные сведения см. на странице руководства ld(1).

-bundle_loader executable

Этот параметр задает executable, который загрузит связываемый выходной файл сборки. Дополнительные сведения см. на странице руководства 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-15.3.0/gcc/Darwin-Options.html

Spec-Zone.ru

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