Re: Mac версия программы: x86_64 или ARM?
От: Aleksid1  
Дата: 14.02.23 19:15
Оценка: 13 (3) +4
Здравствуйте, Khimik, Вы писали:

K>Я пытаюсь портировать свою программу под Mac (Lazarus), и мне сказали, что нужно выбирать между двумя архитектурами — x86_64 или ARM. Я тут пока ничего не знаю, создалось ощущение что ARM это что-то более современное и продвинутое (в том числе по статье на хабре), но один пользователь написал выбирать x86_64. Можете что-то подсказать?


Нужно скомпилировать 2 версии исполняемого файла проекта (для ARM и Intel) а затем склеить их в один файл. Получится Universal Binary для старых и новых Mac. Компилировать можно на любом Мак, главное чтобы была версия macOS 11 Big Sur или новее.

Вот куски кода для Терминала (можно упаковать в скрипт):

lazbuild --cpu=aarch64 --build-all --recursive MyProject.lpi
strip MyProject
// Затем переименуйте в MyProject_arm64

lazbuild --cpu=x86_64 --build-all --recursive MyProject.lpi
strip MyProject
// Затем переименуйте в MyProject_intel

lipo -create -output MyProject MyProject_intel MyProject_arm64
// Команда lipo склеивает обе версии в единый файл.

Команда strip убирает лишнюю отладочную информацию из исполняемого файла и сильно уменьшит размер исполняемого файла

Когда пользователь на Intel Mac запустит приложение, то macOS автоматически выберет Intel код, а на ARM автоматически выберет arm код.
Отредактировано 14.02.2023 21:42 Aleksid1 . Предыдущая версия . Еще …
Отредактировано 14.02.2023 19:19 Aleksid1 . Предыдущая версия .
Отредактировано 14.02.2023 19:18 Aleksid1 . Предыдущая версия .
Отредактировано 14.02.2023 19:18 Aleksid1 . Предыдущая версия .
Отредактировано 14.02.2023 19:17 Aleksid1 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.