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