Это символ, определенный компоновщиком. С вершины <mach-o/ldsyms.h>
:
Этот файл описывает символы, определенные редактором ссылок. Семантика
символ редактора ссылок означает, что он определяется редактором ссылок, только если
на него ссылаются, и это является ошибкой для пользователя, чтобы определить их (см.
страница справочника ld (1)). Стандартные символы редактора ссылок UNIX: __end,
__etext и __edata не поддерживаются редактором ссылок Apple Mach-O. Эти символы действительно не имеют смысла в объекте Mach-O
Поддерживаемые символы редактора файлов и ссылок (описаны здесь)
заменить их. В случае стандартных символов редактора ссылок UNIX
программа может использовать символ
__mh_execute_header и выполните команды загрузки своей программы, чтобы определить окончание (или начало) любого раздела или сегмента в
программа. Обратите внимание, что компилятор ставит подчеркивание перед всеми внешними
имена символов, закодированные на языке высокого уровня. Таким образом, в «С» имена
закодированы без подчеркивания и имена символов в таблице символов имеют
подчеркивание. Для каждого имени редактора ссылок есть два макроса cpp
в этом файле. Макрос с ведущей нижней чертой - это имя символа
а без него имя, закодированное в 'C'.
Специальный символ __mh_execute_header
дополнительно описан с помощью (выделение добавлено):
Значением определенного редактором ссылок символа [__mh_execute_header] является
адрес заголовка mach в исполняемом типе файла Mach-O. Это делает
не отображаются ни в одном типе файла, кроме файла MH_EXECUTE.
Тип символа является абсолютным, так как заголовок не является частью какого-либо
раздел.
Таким образом, компоновщик определяет __mh_execute_header
только при связывании исполняемого файла, а не библиотеки, инфраструктуры или пакета.
Если ваш код фреймворка не ссылается на _mh_execute_header
, то ссылка, вероятно, исходит от используемых вами статических библиотек. И то только при сборке для arm64. Это плохо для этих библиотек, так как они могут использоваться только в исполняемом файле, а не в фреймворке.
Вы не указали, откуда был указан символ, но это, вероятно, поможет вам определить виновника. Если эти статические библиотеки принадлежат третьей стороне, вам придется обратиться к ним за помощью в ее решении.