Difference between revisions of "Installing Lazarus on macOS/ru"

From Lazarus wiki
Jump to navigationJump to search
 
(79 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Platform only|macOS|macOS|macOS}}
+
{{Installing Lazarus on macOS}}
{{Installing Lazarus on MacOS X}}
 
  
 
Установка Lazarus на Mac не особенно сложна, но очень важно выполнить установку в правильном порядке. Пропуск шагов почти наверняка приведет к плачу Ярославны. Вкратце, вот что вы должны сделать -
 
Установка Lazarus на Mac не особенно сложна, но очень важно выполнить установку в правильном порядке. Пропуск шагов почти наверняка приведет к плачу Ярославны. Вкратце, вот что вы должны сделать -
Line 10: Line 9:
 
# Настроить LLDB - поставляемый (и подписанный) Apple отладчик от Lazarus.
 
# Настроить LLDB - поставляемый (и подписанный) Apple отладчик от Lazarus.
  
{{Note| если вы устанавливаете версии Lazarus до 2.0.0, вам почти наверняка понадобится gdb, см. раздел Legacy.}}
+
{{Note| если вы устанавливаете версии Lazarus до 2.0.0, вам почти наверняка понадобится gdb, см. раздел [[Legacy_Information:_Installing_Lazarus_on_Mac|Legacy]].}}
  
  
Line 20: Line 19:
 
В общем, речь идет об использовании набора виджетов '''Carbon''' и '''Cocoa'''. Хотя Carbon все еще можно считать немного более стабильным, на момент выпуска 2.0.0 64-битное Cocoa очень близко [к стабильному] и, безусловно, его следует учитывать. Carbon намеренно (Apple) ограничен 32 битами, и мы знаем, что следующая версия MacOSX, вероятно, не будет его поддерживать.
 
В общем, речь идет об использовании набора виджетов '''Carbon''' и '''Cocoa'''. Хотя Carbon все еще можно считать немного более стабильным, на момент выпуска 2.0.0 64-битное Cocoa очень близко [к стабильному] и, безусловно, его следует учитывать. Carbon намеренно (Apple) ограничен 32 битами, и мы знаем, что следующая версия MacOSX, вероятно, не будет его поддерживать.
  
=== Шаг 1. Загрузка Xcode. ===  
+
=== Шаг 1. Загрузка Xcode (необязательно). ===  
Вам нужны инструменты Apple Developer, которые являются частью среды разработки Xcode. Они могут быть установлены с оригинальных установочных дисков MacOS или более новой копии, загруженной с Apple Developer Connection (ADC), для которой требуется бесплатная регистрация: [http://developer.apple.com/ ссылка]. Загрузите файл Xcode, он окажется в вашем каталоге Downloads в виде zip-файла. На сентябрь 2017 года это Xcode_9_beta_6.xip, около 5Гб. Кликните по нему. Он разархивируется в ваш каталог Downloads. Возможно, вы будете довольны этим, а может и нет. Другие пользователи увидят путь к нему, но не смогут его использовать. И это непорядок. Поэтому я переместил мой [экземпляр] и затем сказал xcode - выбери, куда он был перемещен (в терминале) -
 
  
<syntaxhighlight lang="bash">mv Downloads/Xcode-beta.app /Developer/.
+
Xcode — это загрузка 12ГБ архива, которая займет после распаковки 16ГБ дискового пространства. Имеет смысл заружать и устанавливать полную среду разработки Xcode, '''только если''' вам нужны:
sudo xcode-select -s /Developer/Xcode-beta.app/Contents/Developer </syntaxhighlight>
+
 
 +
* SDK для '''iOS''', '''iPadOS''', watchOS и tvOS; или
 +
* для проверки и загрузки приложений в Mac App Store; или
 +
* [[Notarization_for_macOS_10.14.5%2B/ru|нотариально заверять]] приложения для распространения за пределами Mac App Store.
 +
 
 +
Xcode 11.3.1 для использования в macOS 10.14 Mojave теперь необходимо устанавливать, загрузив его из [http://developer.apple.com/ Apple Developer Connection] (ADC), для чего требуется бесплатная регистрация. Xcode 12.4.x для использования в macOS 10.15 Catalina и более поздних версиях можно установить из магазина приложений [https://apps.apple.com/us/genre/mac-developer-tools/id12002?mt=12 Mac App store]. Обратите внимание, что вы должны сначала переместить все старые версии Xcode из папки «Приложения» в корзину или переименовать приложение Xcode (например, Xcode.app в Xcode_1014.app). Затем вы можете выбрать, какую версию Xcode использовать с помощью утилиты командной строки <tt>xcode-select</tt>. Откройте Applications > Utilities > Terminal (Приложения > Инструменты > Терминал) и введите<tt> man xcode-select</tt> для показа страниц руководства по этой утилите.
 +
 
 +
'''Старые системы:'''
 +
 
 +
Инструменты разработчика Xcode можно установить с исходных установочных дисков macOS или более новой копии, загруженной из [http://developer.apple.com/ Apple Developer Connection] (ADC), для чего требуется бесплатная регистрация. Загрузите файл Xcode, он окажется в вашем каталоге загрузок в виде zip-файла. Нажмите на нее. Он разархивируется в каталог Downloads(Загрузки). Вам может повезти, а может быть и нет. Другие пользователи увидят путь к нему, но не смогут его использовать. А это - непорядок. Чтобы исправить это недоразумение, я переместил свой, а затем указал <tt>xcode-select</tt>, куда он был перемещен (в терминале) -
 +
 
 +
<syntaxhighlight lang="bash">mv Downloads/Xcode.app /Developer/.
 +
sudo xcode-select -s /Developer/Xcode.app/Contents/Developer </syntaxhighlight>
  
 
=== Шаг 2. Инструменты командной строки Xcode ===
 
=== Шаг 2. Инструменты командной строки Xcode ===
Это показано здесь в качестве отдельного шага, потому что на самом деле это отдельный шаг в дополнение к Шагу 1. Не путайте это с внутренними инструментами командной строки Xcode, которые, по словам графического интерфейса Xcode, уже установлены. Lazarus не может использовать эти инструменты внутренней командной строки Xcode, поэтому сделайте следующее (это быстро и легко) -
 
  
<syntaxhighlight lang="bash">xcode-select --install</syntaxhighlight>
+
Это раздел показан как отдельный шаг, потому что это действительно отдельный шаг. Не путайте эти автономные инструменты командной строки с внутренними инструментами командной строки Xcode, о которых графический интерфейс Xcode сообщит вам, что они уже установлены, если вы установили полный пакет Xcode на шаге 1. FPC не может использовать эти внутренние инструменты командной строки Xcode без изменений конфигурации ( подробности см. в [[Xcode]]).
  
Начиная с macOS Mojave, вам также необходимо установить заголовочные файлы SDK:
+
Сделайте следующее, это быстро и легко для всех версий macOS до Catalina 10.15 включительно:
<syntaxhighlight lang="bash">open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg</syntaxhighlight>
 
  
=== Step 3 FPC, FPC Source ===
+
<syntaxhighlight lang="bash">
Get and install FPC and FPC Source. A compatible fpc (and source) must be installed before you install Lazarus, you have a number of options.
+
sudo xcode-select --install
 +
sudo xcodebuild -license accept
 +
</syntaxhighlight>
  
==== Source Forge ====
 
  
Get release version from Link https://sourceforge.net/projects/lazarus/files . These binary install kits are built by the FPC/Lazarus developers and track formal releases. As these install kits are not approved by Apple, you need to hold down the Control key, click the package and choose Open and confirm you want to install from an Unknown Developer (i.e. one who does not pay Apple a kickback).
+
Для Big Sur 11.x и более поздних версий вам нужно ввести только первую из двух приведенных выше команд, если вы также не установили полный пакет Xcode. Если вы установили только инструменты командной строки, вам не следует вводить команду ''xcodebuild''.
  
For authoritative/more detailed instructions for FPC, please go to [http://freepascal.stack.nl/down/i386/macosx-netherlands.html]
+
Если у вас возникли проблемы с установкой инструментов командной строки с использованием этого метода командной строки (например, программа установки зависает при «поиске программного обеспечения»), вы также можете загрузить и установить пакет инструментов командной строки, зайдя на [https://developer.apple.com/download/more/?=for%20Xcode Apple Developer Site] и загрузив и установив образ диска ''Command Line Tools for Xcode''.
  
You might like to apply a simple and quick test of fpc at this stage - http://wiki.freepascal.org/Installing_Lazarus_on_Linux#Testing_FPC_installation
+
=== Шаг 3 Бинарные файлы FPC и исходный код FPC ===
 +
{{Note| Для установки Apple Silicon/AArch64/M1, если вы устанавливаете FPC 3.2.2 (Lazarus 2.2RCx или 2.2.0 или более поздние версии), вам не нужно компилировать собственную версию FPC для Apple Silicon, поскольку FPC 3.2.2 для macOS универсальный двоичный файл, содержащий исполняемые файлы Intel и aarch64. Если вы устанавливаете более раннюю, чем 3.2.2, версию FPC, обратитесь к [[macOS_Big_Sur_changes_for_developers#ARM64.2FAArch64.2FApple_Silicon_Support|этим инструкциям]] для создания собственного компилятора Apple Silicon Free Pascal после установки 64-разрядного двоичного файла Intel и исходных пакетов для FPC.
 +
}}
  
==== Other FPC Options ====
+
Загрузите и установите официальный пакет двоичных файлов FPC и отдельный пакет исходного кода FPC из [https://sourceforge.net/projects/lazarus/files/ области файлов Lazarus IDE].
  
You could also consider using fpcupdeluxe to install fpc and, perhaps Lazarus, [[ fpcupdeluxe | fpcupdeluxe]]
+
Когда вы доберетесь до области файлов Lazarus IDE:
  
Alternatively, you can use [http://finkproject.org/ fink], a package manager for macOS to install fpc. Note at the time of writing (Early 2019) fink offers Lazarus 1.8.4 and its generally agreed that versions later than 2.0.0 (ie non-release) are required so probably unsuited for Cocoa development. The extra bonus of fink is easy installation as well as clean removal of a huge number of other open source software packages, including [[Cross_compiling#From_Darwin_to_Windows.2C_Linux_and_others | FreePascal crosscompilers ]] for many processors and systems.  The choice for lazarus is between a carbon look of lazarus (preferred by most), a gtk2 look, a Qt4-based and a Qt5-based version:
+
# Выберите правильную версию вашей операционной системы. Подавляющее большинство пользователей Mac теперь должны выбирать 64-битные пакеты в каталоге Lazarus macOS x86-64. Каждый компьютер Mac с конца 2006 года поддерживает 64-разрядную версию. Тот факт, что Apple полностью отказалась от 32-битной поддержки в macOS 10.15 Catalina (выпущенной в октябре 2019 года), является еще одной причиной для выбора 64-битных пакетов.
 +
# Выберите версию Lazarus, которую вы хотите установить, и вам будут представлены два бинарных и исходных пакета FPC для загрузки.
  
<syntaxhighlight>$ fink install lazarus-aqua
+
Эти установочные пакеты создаются разработчиками FPC/Lazarus и отслеживают официальные выпуски. Поскольку эти установочные пакеты не одобрены Apple, вам нужно, удерживая нажатой клавишу Control, щелкнуть пакет, выбрать «Открыть» и подтвердить, что вы хотите установить его от неизвестного разработчика (Unknown Developer).
// or
 
$ fink install lazarus-gtk2
 
// or
 
$ fink install lazarus-qt4
 
// or
 
$ fink install lazarus-qt5</syntaxhighlight>
 
  
You will be asked, whether to install a number of dependencies, including the FreePascal compiler, the lazarus sources. Simply hit RETURN at the prompt and go for a coffee. It may take quite some time to build all packages, in particular on older Macs.
+
На этом этапе вы можете попробовать простой и быстрый тест FPC — [[Installing_the_Free_Pascal_Compiler#Testing_the_FPC_Install|Тестирование установки FPC]].
  
After installation, Lazarus can be started from the folder /Applications/Fink/. The actual details of fpc and lazarus are in subdirectories of /sw
+
=== Установка Lazarus ===
  
With any lazarus package from fink, these widget sets are supported for your program on macOS:
+
Крайне важно, чтобы совместимый компилятор Free Pascal (FPC) и его исходный код был установлен ''перед установкой'' Lazarus IDE. 
  
carbon (Aqua), gtk2, qt4 (Aqua), qt5 (Aqua), nogui, win32, win64 and wince.
+
{{Note| Для установки на Apple Silicon/AArch64 обратитесь к инструкциям [[#Lazarus Fixes 2.2|Lazarus Fixes 2.2]] или [[#FPC_development_version|Lazarus development]], чтобы создать собственную IDE Lazarus. Перейдите к инструкциям по сборке и используйте загрузку исходного кода Lazarus Fixes 2.2/Lazarus development по своему усмотрению.
 +
}}
  
If you install fpc from fink, you will be fine downloading Lazarus source and compiling as detailed below. However, its possibly not a good idea to mix fink fpc with the sourceforge binary install of Lazarus.
+
Загрузите и установите Lazarus IDE из [https://sourceforge.net/projects/lazarus/files/ области файлов Lazarus IDE]. Когда вы доберетесь до этой области файлов, выберите правильную версию вашей операционной системы. Подавляющее большинство пользователей Mac теперь должны выбирать 64-битные пакеты в каталоге Lazarus macOS x86-64. Каждый компьютер Mac с конца 2006 года поддерживает 64-разрядную версию. Тот факт, что Apple полностью отказалась от 32-битной поддержки в macOS 10.15 Catalina (выпущенной в октябре 2019 года), является еще одной причиной для выбора 64-битных пакетов.
  
=== Install Lazarus ===
+
=== Настройка отладчика ===
  
At time of writing (early 2019), there are a number of reasons why you may be better off using a non release version of Lazarus, specifically, fixes_2_0. Particularly -
+
В версиях Lazarus 1.8.4 и более ранних версиях вам нужно было использовать gdb в качестве отладчика, медленно устанавливать и тяжело подписывать. Начиная с Lazarus 2.0.0 вы можете (и должны) использовать LLDB, отладчик, предоставляемый Apple, подпись [для которого] не требуется.
* You almost  certainly need to target Cocoa, its likely the next release of MacOSX will not support 32bit Carbon.
 
* You almost certainly want to use lldb instead of gdb - far easier install.
 
* The Cocoa is steadily improving and lldb interface is rapidly improving since even 2.0.0.
 
* Fixes_2_0 is a safer and more stable than trunk but gets the new stuff much faster than release version.
 
  
Precompiled binaries based on fixes_2_0 are not available from SourceForge but can be obtained from [[fpcupdeluxe]] . But here we will discuss downloading source and building. An little slow initially but very reliable and a great test of your compiler install ! You will need svn (its not pre installed on early MacOS, use brew or fink to install).
+
Предполагая, что вы установили все необходимое и запустили Lazarus, остается только настроить отладчик. Если вы не сделаете этого сейчас, Lazarus попытается использовать GDB и потерпит неудачу.
<syntaxhighlight>
+
 
cd ~
+
Сначала нажмите Tools(Инструменты)->Options(Параметры)->Debugger(Отладчик). В правом верхнем углу открытого окна есть надпись "Debugger type and path"(Тип и путь отладчика), вы должны задать оба [значения]. Выберите "LLDB debugger (with fpdebug) (Beta)"(Отладчик LLDB (с помощью fpdebug) (Beta)).
 +
 
 +
[[File:Set_Debugger2.png|500px|top]]
 +
 
 +
Если его нет в списке выбора, см. ниже (Установка LazDebuggerFpLLdb). Обратите внимание, что изображение выше имеет путь к LLDB, который может отличаться от вашего, в зависимости от того, где были установлены инструменты XCode, в моем случае /Library. Сохраните эти настройки, и теперь вы можете попытаться скомпилировать практически пустую программу, которую Lazarus любезно предоставил для вас (щелкните маленький зеленый треугольник в верхнем левом углу).
 +
 
 +
Далее вы видите загадочный вопрос, см. изображение ниже. Выберите "Debug Format"(формат отладки) из предложенных -
 +
 
 +
[[File:Set_Dwarf.png|top]]
 +
 
 +
Martin_fr (человек, который дал нам этот интерфейс между Lazarus и LLDB) предлагает вам использовать "dwarf3". Затем вам нужно ввести свой пароль: MacOSX хитроумна, потому что одно приложение мешает другому. В этом случае это хорошо!
 +
 
 +
==== Дополнительная информация по использованию LLDB ====
 +
В [https://forum.lazarus.freepascal.org/index.php/topic,42869.0.html этой ветке] форума появляется много информации об использовании LLDB. Вот еще несколько самоцветов от Martin_fr:
 +
 
 +
В случае непредвиденных проблем стоит попробовать "dwarf with sets" взамен используемому "dwarf3".
 +
 
 +
Параметр "debug info" влияет только на модули непосредственно в вашем проекте. Однако модули в пакетах также могут иметь отладочную информацию. Это может быть
 +
* установка в пакете
 +
* для многих, но не для всех пакетов в меню Tools(Сервис) > Configure build Lazarus(Настройка сборки Lazarus)
 +
* project settings (настройки проекта) > [[IDE_Window:_Compiler_Options#Additions_and_Overrides|Дополнения и переопределения]]
 +
 
 +
Если вы измените настройки для пакета, вы также можете проверить, в какой пакет вы планируете перейти. Пакет, в который вы не входите, не требует отладочной информации.
 +
Если вы используете тип из пакета (такой, как TForm из LCL), то достаточно, чтобы ваш модуль (в котором вы объявляли переменную и(или) использовали переменную для включения типа) имел отладочную информацию. Уменьшение количества пакетов с отладочной информацией (в том числе тех, которые по умолчанию имеют отладочную информацию) может сократить время запуска отладчиков.
 +
 
 +
Также, возможно, стоит сравнить (не проверено) время запуска отладчиков для тех же настроек, только изменив флажок "use external debug info" (использовать внешнюю информацию отладки).
 +
 
 +
Это должно быть установлено только в вашем проекте. Если установлен в вашем проекте, это повлияет на все пакеты. (Если он установлен в пакете, он ничего не сделает/по крайней мере, не должен ...)
 +
 
 +
==== Установка LazDebuggerFpLLdb ====
 +
Если вы установились из исходного кода и [при этом] использовали параметр bigide [утилиты make], то правильный отладчик будет установлен, как пакет, и [сразу будет] готов к работе. Однако, если вы установили другим способом, [отладчика] там может и не оказаться. На главном экране IDE выберите Packages(Пакеты) -> Install/Uninstall Packages (Установить/удалить пакеты). Show - это два списка пакетов, слева - список уже установленных, справа - доступных для установки. Ищите LazDebuggerFpLldb (именно его, есть некоторые схожие названия, но менее подходящие пакеты). Если он справа, щелкните его, нажмите "Install Selection" (Установить выделенное), а затем "Save and rebuild IDE" (Сохранить и пересобрать IDE). Это займет немного времени, IDE выключится и перезапустится, и все должно быть хорошо. Теперь вернитесь на страницу и продолжите настройку отладчика.
 +
 
 +
== Cocoa 64-бит в сравнении с Carbon 32-бит ==
 +
 
 +
Использование 64-битной платформы Cocoa от Apple теперь, несомненно, является будущим для Mac. 32-разрядная платформа Apple Carbon, хотя больше не разрабатывается, но работает почти так же, как и ожидалось. Однако мы бы порекомендовали сначала попробовать Cocoa, поскольку Apple прекратила поддержку 32-разрядных приложений и 32-разрядной платформы Carbon в macOS 10.15 Catalina (октябрь 2019 г.) .
 +
 
 +
Можно собрать Cocoa-версию Lazarus IDE, начиная с  версии 2.0.0 и выше. Также можно собрать Carbon-версию Lazarus IDE (если вы не используете macOS 10.15 Catalina или более позднюю версию) и использовать ее для создания 64-битных двоичных файлов Cocoa.
 +
 
 +
Чтобы создавать приложения Cocoa в Carbon или Cocoa IDE, вам необходимо установить Target для 64-битного процессора и выбрать набор виджетов Cocoa:
 +
 
 +
* Откройте свой проект с помощью Lazarus и в меню выберите Project > Project Options.
 +
* На панели "Config and Target" (Конфигурация и цель) установите для "Target CPU family"(Целевое семейство ЦП) значение "x86_64" (Intel) или "aarch64" (Apple M1).
 +
* На панели "Config and Target" (Конфигурация и цель), если "Current LCL widgetset"(Текущий набор виджетов LCL) не установлен для Cocoa, нажмите "Select another LCL widgetset" (Выбрать другой набор виджетов LCL), который перенесет вас на панель "Additions and Overrides" (Дополнения и перекрытия), где вы можете нажать выпадающее меню "Set LCLWidgetType"(Присвоить "LCLWidgetType") и установите значение "Cocoa"
 +
* Убедитесь, что в разделе Tools (Сервис) > Options(Настройки) (> Preferences (Параметры) для Lazarus в версии 2.2.0 и более поздних версиях) для параметра "Compiler Executable" (Исполнимый файл компилятора) установлено значение «/usr/local/bin/fpc», чтобы получить 64-разрядные приложения.
 +
* Теперь скомпилируйте свой проект и, пожалуйста, сообщите о любых проблемах, с которыми вы столкнулись.
 +
 
 +
== Матрица совместимости FPC + Lazarus ==
 +
Не всякая комбинация [версий] Lazarus и Free Pascal совместима с любой установкой macOS. Пожалуйста, обратитесь к следующей таблице, чтобы найти правильную версию для вашей среды разработки:
 +
{{Template:Compatibility matrix of Lazarus for Mac}}
 +
 
 +
== Установка невыпущенных версий Lazarus IDE ==
 +
[[user:zoltanleo|Прим.перев]]: настоятельно советую для НЕрелизных сборок компилятора и Лазаруса использовать [[fpcupdeluxe/ru|fpcupdeluxe]]
 +
 
 +
=== Lazarus Fixes 2.2 ===
 +
 
 +
* [[Lazarus_2.2_fixes_branch|Fixes included in fixes_2_2]]
 +
 
 +
Есть ряд причин, по которым вам может быть лучше использовать нерелизную версию Lazarus, в частности, fixes_2_2. Особенно:
 +
 
 +
* Вам почти наверняка нужно ориентироваться на 64-битный Cocoa, macOS 10.15 Catalina и более поздние версии вообще не поддерживают 32-битный Carbon.
 +
* Набор виджетов Cocoa постоянно улучшался, а интерфейс отладчика lldb быстро улучшался, начиная с версии 2.0.0.
 +
* Если на вашем Mac установлен процессор Apple M1, отладчик в fixes_2_2 теперь работает для aarch64.
 +
* Fixes_2_2 — более безопасный и стабильный вариант, чем ветка разработки, но все равно получает новые функции намного быстрее, чем релизная версия.
 +
 
 +
Предварительно скомпилированные двоичные файлы на основе fixes_2_2 недоступны в SourceForge, поэтому мы загружаем и собираем их из исходного кода. Сначала немного медленный, но очень надежный и отличный тест установки вашего компилятора! Вам понадобится git, который включен во все последние версии инструментов командной строки Xcode, которые вы уже должны были установить (см. [[Installing_Lazarus_on_macOS/ru#.D0.A8.D0.B0.D0.B3_2._.D0.98.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D1.8B_.D0.BA.D0.BE.D0.BC.D0.B0.D0.BD.D0.B4.D0.BD.D0.BE.D0.B9_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8_Xcode|Инструменты командной строки Xcode]] выше).
 +
 
 +
Касательно svn или git: инструменты командной строки Xcode 11.4 в macOS 10.15 больше не устанавливают svn, только git. Вы можете установить Subversion через fink, порты или brew.
 +
 
 +
<b>Additional notes for building a native aarch64 Lazarus IDE for an Apple Silicon M1 processor Mac</b>
 +
 
 +
Убедитесь, что вы скомпилировали собственный компилятор Free Pascal aarch64 (как это сделать, см. в разделе Поддержка Apple Silicon).
 +
 
 +
{{Note| Выпуск FPC 3.2.2 включает в себя универсальные двоичные файлы, которые изначально будут работать как на aarch64 (64-разрядная версия ARM — Apple Silicon M1), так и на x86_64 (64-разрядная версия Intel), поэтому вам больше не нужно компилировать свои собственные из исходного кода.}}
 +
 
 +
При сборке Lazarus IDE измените CPU_TARGET в приведенных ниже инструкциях с x86_64 (64-разрядная версия Intel) на aarch64 (64-разрядная версия ARM — Apple Silicon M1).
 +
 
 +
==== Загрузка исходного кода Lazarus Fixes 2.2 ====
 +
 
 +
Создайте каталог для Lazarus и загрузите текущую версию исправлений:
 +
 
 +
<syntaxhighlight lang="bash">
 +
cd
 
mkdir -p bin/lazarus
 
mkdir -p bin/lazarus
 
cd bin/lazarus
 
cd bin/lazarus
svn checkout https://svn.freepascal.org/svn/lazarus/branches/fixes_2_0 laz_fixes
+
</syntaxhighlight>
// wait some time ....
+
 
 +
С использованием git:
 +
git clone -b fixes_2_2 https://gitlab.com/freepascal.org/lazarus/lazarus.git laz_fixes
 +
 
 +
С использованием svn:
 +
svn checkout https://github.com/fpc/Lazarus/branches/fixes_2_2 laz_fixes
 +
 
 +
В зависимости от вашего интернет-соединения и загруженности сервера это может занять от нескольких секунд до нескольких минут.
 +
 
 +
==== Обновление исходного кода Lazarus Fixes 2.2 ====
 +
 
 +
Чтобы поддерживать установку fixes_2_2 в актуальном состоянии, достаточно просто:
 +
 
 +
С использованием git:
 +
 
 +
<syntaxhighlight lang="bash">
 +
cd ~/bin/lazarus/laz_fixes
 +
git clean -f -d
 +
git pull
 +
</syntaxhighlight>
 +
 
 +
С использованием svn:
 +
 
 +
<syntaxhighlight lang="bash">
 +
cd ~/bin/lazarus/laz_fixes
 +
svn clean --remove-unversioned
 +
svn update
 +
</syntaxhighlight>
 +
 
 +
==== Сборка исходного кода Lazarus Fixes 2.2 ====
 +
 
 +
<syntaxhighlight lang="bash">
 
cd laz_fixes
 
cd laz_fixes
make LCL_PLATFORM=cocoa CPU_TARGET=x86_64 bigide
+
make distclean all LCL_PLATFORM=cocoa CPU_TARGET=x86_64 bigide
// wait some time .....
+
//-wait some time...
 
open startlazarus.app --args "--pcp=~/.laz_fixes"
 
open startlazarus.app --args "--pcp=~/.laz_fixes"
 
</syntaxhighlight>
 
</syntaxhighlight>
* Note I pass a parameter to use a config directory thats based on the name of the actual install directory. It makes some scripting easy.
 
  
* Its also quite feasible at present (and perhaps a touch safer) to build a 32bit Carbon Lazarus IDE and use it to build 64bit Cocoa applications. Replace above make line with "''make LCL_PLATFORM=carbon CPU_TARGET=i386 bigide'' " and setup your project as mentioned in the [[Installing_Lazarus_on_MacOS_X#Carbon_and_Cocoa|Carbon_and_Cocoa]] section below.
+
* Примечание. Я передаю параметр для использования каталога конфигурации, основанного на имени фактического каталога установки. Это упрощает написание некоторых сценариев.
 +
 
 +
* В более старых версиях macOS, поддерживающих 32-битные приложения, замените приведенную выше строку make на "''make LCL_PLATFORM=carbon CPU_TARGET=i386 bigide'' " и настройте свой проект, как указано в разделе [[Installing_Lazarus_on_macOS/ru#Cocoa_64-.D0.B1.D0.B8.D1.82_.D0.B2_.D1.81.D1.80.D0.B0.D0.B2.D0.BD.D0.B5.D0.BD.D0.B8.D0.B8_.D1.81_Carbon_32-.D0.B1.D0.B8.D1.82|Carbon в сравнении с Cocoa]] выше.
 +
 
 +
Возможно, вы захотите поместить небольшой скрипт в каталог $HOME/bin и даже указать путь к нему (очень UNIX!)
  
You might like to put a small script in your $HOME/bin directory and even set a path to it (very unix!)
+
<syntaxhighlight lang="bash">
<syntaxhighlight>
 
 
#!/bin/bash
 
#!/bin/bash
 
LAZDIR="laz_fixes"
 
LAZDIR="laz_fixes"
Line 101: Line 218:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== Configure the Debugger ===
+
=== Разрабатываемая версия Лазаруса ===
  
In versions of Lazarus 1.8.4 and earlier, you needed to use gdb as a debugger, slow to install and hard to sign. Since Lazarus 2.0.0 you can (and should) use LLDB, a debugger provided by Apple, no signing required.
+
* [[Lazarus_2.4.0_release_notes|Примечания к разрабатываемой версии Lazarus]] - Примечание: работа в процессе
  
Assuming you have installed whats necessary and started Lazarus, all that remains is configuring the debugger. If you don't do this now, Lazarus will try to use GDB and fail.
+
Предварительно скомпилированные двоичные файлы, основанные на версии для разработки (известной как "trunk" в SVN; теперь известна как "main" в GIT) среды разработки Lazarus недоступны в SourceForge, поэтому можно загрузить исходный код версии для разработки с помощью ''svn'' или ''git'' и собрать IDE Lazarus. Вам понадобится svn (до macOS 10.15 — Catalina) или git (после macOS 10.14 — Mojave), который включен в автономные инструменты командной строки Xcode, которые вы уже должны были установить (см. Инструменты командной строки Xcode выше).  
  
First, click Tools->Options->Debugger.  Top right of the window now open has a label, "Debugger type and path", you must set both. Select "LLDB debugger (with fpdebug) (Beta)".
+
{{Apple Silicon Lazarus Build Notes}}
  
[[File:Set_Debugger.png|none]]
+
==== Скачивание исходного кода разрабатываемой версии Lazarus ====
  
If its not show in the selection list, see below (Installing LazDebuggerFpLLdb".) Note that the image above has a path to LLDB that may well be different to yours, depends on where the XCode tools were installed, in my case /Library . Save those settings and you can now try to compile the almost nothing programme that Lazarus has kindly provided for you. (click the small green triangle near top left.)
+
<syntaxhighlight lang="sh">
 +
cd
 +
mkdir -p bin/lazarus
 +
cd bin/lazarus
 +
</syntaxhighlight>
  
Next you see a puzzeling question, see image below. Choose a "Debug Format" from one of the offered -
+
С использованием git:
 +
git clone -b main https://gitlab.com/freepascal.org/lazarus/lazarus.git laz_main
  
[[File:Set_Dwarf.png|none]]
+
С использованием svn:
 +
svn checkout --depth files https://github.com/fpc/Lazarus/branches all
 +
cd all
 +
svn update --set-depth infinity main
  
Martin_fr, the person who has given us this interface between Lazarus and LLDB, suggests you use "dwarf3". Then, you need to enter your password, a MacOSX cuteness because one application appears to be interfering with another. In this case, thats fine !
+
Приведенный выше вызов svn более сложен из-за бага во многих версиях Subversion. В качестве обходного пути рекомендуется использование утилиты Альфреда (он же Don Alfredo на [[Forum|форуме]]), который является создателем [[fpcupdeluxe/ru|fpcupdeluxe]].
  
==== Extra Information on using LLDB ====
+
==== Обновление исходников версии Lazarus для разработки ====
A great deal of information about using LLDB appears in this forum thread https://forum.lazarus.freepascal.org/index.php/topic,42869.0.html  Here is a few gems, again, from Martin_fr :
 
  
In the unexpected case of problems, it may be worth trying "dwarf with sets" instead of just "dwarf3".
+
Чтобы обновить существующий исходный код версии Lazarus для разработки, следует сделать следующее:
  
The "debug info" setting only affects the units directly in your project. However units in packages may have debug info too. This can be
+
С использованием git:
* set per package
 
* for many, but not all packages in menu Tools > Configure build Lazarus
 
* project settings > [[IDE_Window:_Compiler_Options#Additions_and_Overrides|Additions and Overrides]]
 
  
If you change settings for package, you may as well check into which package you expect to step. Package you do not step into, do not need debug info.
+
<syntaxhighlight lang="bash">
If you use a type from a package (such as TForm from LCL) it is enough that your unit (in which you declare the variable / must declare and use a variable to include the type) has debug info. Reducing the amount of packages with debug info (including those that default to have debug info), can shorten the debuggers start-up time.
+
cd ~/bin/lazarus/laz_main
 +
git clean -f -d
 +
git pull
 +
</syntaxhighlight>
  
Also it may be worth comparing (its not been tested) the debuggers start up time for the same settings, only changing the checkbox "use external debug info".
+
С использованием svn:
This needs to be only set in your project. If set in your project it will affect all packages. (If set in a package it will do nothing / at least should...)
 
  
==== Installing LazDebuggerFpLLdb" ====
+
<syntaxhighlight lang="bash">
If you installed from source and used the bigide parameter to make, then the correct debugger will be installed, as a package, and ready to go. If, however, you installed in another way, it may, or may not be there. From the main IDE screen, click Packages->Install/UninstallPackages. Show is two lists of packages, the list on the left is installed, the list on the right is available to install. Look for LazDebuggerFpLldb (exactly that, there are some similar named but less suitable packages). If its on the right hand side, click it, press "Install Selection" and then "Save and rebuild IDE". This will take a little time, the IDE will shutdown and restart and all should be well. Now jump back up the page and continue configuring the debugger.
+
cd ~/bin/lazarus/laz_trunk
 +
svn cleanup --remove-unversioned
 +
svn update
 +
</syntaxhighlight>
  
== Compatibility ==
+
==== Сборка исходного кода версии Lazarus для разработки ====
Not every combination of Lazarus and Free Pascal is compatible with every installation of macOS. Please refer to the following table in order to find the correct version for your development environment:
 
{{Template:Compatibility matrix of Lazarus for Mac}}
 
  
== Carbon and Cocoa ==
+
<syntaxhighlight lang="bash">
At present (early 2019) Lazarus using Cocoa will meet many users needs. Carbon work pretty much as expected but you are advised to try Cocoa first, especially considering that Apple has indicated releases after Mojave will not support 32bit Carbon. Alternatives include QT and GTK2+, both requiring additional libraries and GTK2+ on the Mac appears to get little attention these days. QT on the Mac does have some strong supporters on the forum.
+
make distclean all LCL_PLATFORM=cocoa CPU_TARGET=x86_64 bigide
 +
//-wait some time...
 +
open startlazarus.app --args "--pcp=~/.laz_dev"
 +
</syntaxhighlight>
  
However, we should assume, '''Cocoa''' is the future on Mac. It is possible to build an all Cocoa version of Lazarus with release 2.0.0 and later.  It is also possible to make a Carbon install of Lazarus and use that to generate Cocoa 64bit binaries. In a Carbon IDE, you need to set the Target to the 64bit processor and select the Cocoa Widget set:
+
=== Что делает аргумент make bigide?===
  
*Open your project with Lazarus and click Project/ProjectOptions
+
Аргумент ''bigide'' <tt>make</tt> добавляет в Lazarus кучу пакетов, которые многие находят полезными и без которых не могут обойтись. Пакеты, которые добавляются:
*In the "Config and Target" panel set the "Target CPU family" to be "x86_64"
 
*In the "Additions and Overrides" panel click on "Set LCLWidgetType" pulldown and set the value to "Cocoa"
 
*In the past, for some reason Lazarus kept setting the compiler to "/usr/local/bin/ppc386" - which results in 32 bit apps. Make sure under Tools->Options that "Compiler Executable" is set to "/usr/local/bin/fpc" to get 64 bit apps.
 
*Now compile your project - and please feed back any problems you experience.
 
  
== Download the sources via svn ==
+
<table width="100%">
 +
<tr valign="top">
 +
<td>
  
The sources are kept in a version control system called subversion or short '''svn''':
+
* cairocanvas
 +
* chmhelp
 +
* datetimectrls
 +
* externhelp
 +
* fpcunit
 +
* fpdebug
 +
* instantfpc
 +
* jcf2
 +
* lazcontrols
 +
* lazdebuggers
 +
</td>
 +
<td>
 +
* lclextensions
 +
* leakview
 +
* macroscript
 +
* memds
 +
* onlinepackagemanager
 +
* pas2js
 +
* PascalScript
 +
* printers
 +
* projecttemplates
 +
* rtticontrols
 +
</td>
 +
<td>
 +
* sdf
 +
* sqldb
 +
* synedit
 +
* tachart
 +
* tdbf
 +
* todolist
 +
* turbopower_ipro
 +
* virtualtreeview
 +
</td>
 +
</tr>
 +
</table>
  
*10.5 and higher already contains svn clients. Users of earlier versions must install SVN for macOS. A good package is provided by [http://www.codingmonkeys.de/mbo/ Martin Ott]. You can also use fink. SVN clients with GUI (graphical user interface) are available from [http://www.versiontracker.com Versiontracker]. A quite handy client, which integrates in Finder, is [http://scplugin.tigris.org SCPlugin].
+
Приведенный выше список взят из ''<tt>[Lazarus source directory]/IDE/Makefile.fpc</tt>'' и может быть изменен.
  
Create a directory, where you would like to put the sources. You don't need to be root to do this. Any normal user can do this.
+
Обратите внимание: если вы не скомпилировали свою собственную Lazarus IDE с аргументом bigide, вы можете установить любой из этих пакетов самостоятельно, используя диалоговое окно Lazarus IDE [[IDE Window: Installed Packages|''Package > Install/Uninstall Packages...'']]
First create a directory for fpc
 
: (e.g. /Users/username/freepascal)
 
then open a terminal and do the following:
 
[]$ svn co http://svn.freepascal.org/svn/fpc/trunk fpc
 
This will create a directory called 'fpc', which can be later used in the IDE.
 
Hint: To download/update the latest changes you can simply do
 
[]$ cd /Users/username/freepascal/fpc
 
[]$ svn up
 
  
Building fpc
+
== Установка незарелизенных версий FPC ==
[]$ make clean all
 
[]$ sudo make install
 
  
Then download lazarus
+
=== Установка из исходников ===
[]$ svn co http://svn.freepascal.org/svn/lazarus/trunk lazarus
 
This will create a directory called 'lazarus'.
 
To update the latest changes:
 
[]$ cd /Users/username/freepascal/lazarus
 
[]$ svn up
 
  
Building lazarus
+
В настоящее время существует две незарелизенные ветки компилятора Free Pascal: ветка разработки (trunk) и ветка Fixes 3.2, которая включает дополнительные исправления выпущенной версии 3.2.2. Разработчики и те, кто любит находиться на переднем крае и тестировать новые функции и исправления, выберут версию для разработчиков; а обычные пользователи, которые хотят использовать стабильную ветку с некоторыми дополнительными исправлениями, начиная с последней версии выпуска, выберут ветку Fixes. Приведенные ниже инструкции охватывают обе эти ветви.
[]$ make clean all
 
  
Then start lazarus either via command line or by double click in the finder:
+
Исходный код хранится в системе контроля версий под названием ''git'':
  open lazarus.app
 
  
== Download stable sources ==
+
* macOS 10.5 и выше уже содержат git-клиент командной строки, если вы установили утилиты командной строки Xcode.
  
Source code of stable versions is available in the [http://sourceforge.net/projects/lazarus/files/Lazarus%20Zip%20_%20GZip/ Lazarus Zip - GZip] archives. This is e.g. an option for users, who want to run the latest official Lazarus versions on "unsupported" machines, e.g. PPC-based Macs. Provided that you have installed the latest stable FPC version together with sources, it is sufficient to download and unpack the zip archive. Move it to the desired location (e.g. your /Developer folder), open a terminal window and change the shell's path to this folder (the easiest way to do this is to type "cd " and then to drag the icon of the freshly unpacked Lazarus folder to the position after this command in the Terminal window). If necessary enter <return> and then
+
* Вам также необходимо установить последнюю релизную версию компилятора Free Pascal (3.2.2 по состоянию на март 2022 г.), чтобы иметь возможность успешно скомпилировать разрабатываемую (trunk) версию.
[]$ make clean bigide
 
  
and <return> again. Subsequently, FreePascal will use the makefile in this folder to build the Lazarus IDE. This may take a few minutes, but the process is fully automated. Therefore, you might want to look for a cup of coffee, while FPC is working. If the compiler is ready it prints the number of processed lines and the required time to the shell's output.
+
{{Note|При сборке нативного компилятора Free Pascal под aarch64 (ppca64) для процессора Apple Silicon M1 Mac '''измените CPU_TARGET''' в приведенных ниже инструкциях с x86_64 (64-разрядная версия Intel) на aarch64 (64-разрядная версия ARM — Apple Silicon M1) и '''измените любую ссылку''' с ppcx64 на ppca64}}
  
The last step is to right-klick on the Lazarus bundle icon and to select "Show Package Contents" from the context menu. Then drag the executable "lazarus" to the folder "Contents/MacOS" of the bundle. That's it.
+
==== FPC веросия для разработчиков ====
  
= Legacy Information =
+
* [[FPC_New_Features_Trunk|Новые функции FPC trunk]]
 +
* [[User Changes Trunk|Изменения для ползователей FPC trunk]] - может сломать существующий код.
  
=== Install gdb ===
+
Обратите внимание, что поскольку версия FPC для разработки (известная как "trunk" в SVN; теперь известная как <code>main</code> в GIT) по определению все еще находится в стадии разработки, некоторые функции могут измениться до того, как они попадут в релизную версию.
  
As of the Lazarus 2.0.0 release this is entirely optional. The IDE now supports LLDB directly. See http://forum.lazarus-ide.org/index.php/topic,42869.0.html and http://wiki.lazarus.freepascal.org/Lazarus_2.0.0_release_notes#LLDB_based_Debugger_.28New.29
+
Создайте каталог, в который вы хотите поместить исходный код (например, fpc_main в вашем домашнем каталоге). Вам не нужно быть root, чтобы сделать это. Это может сделать любой нормальный пользователь. Откройте Applications > Utilities > Terminal и выполните следующие действия:
  
Getting gdb to run can be a bit tedious but is worthwhile in the end if using Lazarus < V2.0 or have some specific requirement for gdb. You probably don't !
+
<syntaxhighlight lang=sh>
 +
[]$ git clone -b main https://gitlab.com/freepascal.org/fpc/source.git fpc_main
 +
</syntaxhighlight>
  
This step should be done after installing XCode and before installing FPC/Lazarus.
+
Это создаст каталог с именем <tt>fpc_main</tt> и загрузит в него основной исходный код FPC.
  
# Install fink or brew and use them to install gdb- http://wiki.freepascal.org/GDB_on_OS_X_Mavericks_and_Xcode_5
+
Чтобы впоследствии обновить локальный репозиторий исходного кода последними изменениями исходного кода, вы можете просто сделать:
# Self sign the gdb binary using tools already on your Mac - https://sourceware.org/gdb/wiki/BuildingOnDarwin This is the tedious part. The instructions are clear except, perhaps they could have mentioned that after you have set the Keychain to ’System’ you need click ‘Create’ and ‘Done’ on the next screen. Then go and find the cert in your overall list of certs to do the next instruction “using the contextual menu…”. Don’t worry about step “2.1.4 Disable starting the debuggee…”, we’ll address that once Lazarus itself is installed and working.
+
<syntaxhighlight lang=sh>
# Once Lazarus is installed and fired up, tell it how it should start gdb, that is step 5.
+
[]$ cd
 +
[]$ cd fpc_main
 +
[]$ git clean -f -d
 +
[]$ git pull
 +
</syntaxhighlight>
  
'''Note''' that as of April 2018, there may be issues with newest gdb and High Sierra. https://forum.lazarus.freepascal.org/index.php/topic,40874.0.html
+
Чтобы собрать и установить FPC (выделенный текст должен быть на одной строке):
''According to https://stackoverflow.com/questions/49001329/gdb-doesnt-work-on-macos-high-sierra-10-13-3, gdb 8.1 does not work on High Sierra, but 8.0.1 does.''
 
  
'''Part 2 of gdb install, Tell Lazarus about starting gdb'''
+
<syntaxhighlight lang=sh highlight=3>
 +
[]$ cd
 +
[]$ cd fpc_main
 +
[]$ make distclean all FPC=/usr/local/lib/fpc/3.2.2/ppcx64 OS_TARGET=darwin CPU_TARGET=x86_64 OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/"
 +
[]$ sudo make install FPC=$PWD/compiler/ppcx64 OS_TARGET=darwin CPU_TARGET=x86_64
 +
</syntaxhighlight>
  
Again, this step is not necessary with Lazarus V2.0 and Later. See http://wiki.lazarus.freepascal.org/Lazarus_2.0.0_release_notes#LLDB_based_Debugger_.28New.29 If you do install (and use) gdb, you must tell Lazarus about how to call gdb. Obviously, this step happens after Lazarus is installed.
+
Вам также потребуется обновить ссылки для компилятора в <tt>/usr/local/bin</tt>, которые будут указывать на предыдущую версию FPC. Например:
 
OK, now you should be able to start Lazarus, it should display the various parts and paths it needs (including gdb) in the little opening screen. You will get an alert there if you chose to not use a debugger. Proceed to the IDE and we now need to tell Lazarus to tell gdb to not open a shell, as noted by a number of Forum people (http://forum.lazarus.freepascal.org/index.php/topic,37310.0.html). Within Lazarus, click Tools->Options->Debugger->General
 
In the “Debugger specific Options” there is a field labeled Debugger_Startup_Options. Type in "--eval-command=set startup-with-shell off" (including the inverted commas) AND press the return key, click OK. Note you cannot copy and paste into this box (##$!). See screen shot.
 
<gallery>
 
Image:Debug_Startup_Options_01.png
 
</gallery>
 
  
 +
<syntaxhighlight lang=sh>
 +
[]$ cd /usr/local/bin
 +
[]$ sudo rm ppc386
 +
[]$ sudo rm ppcx64
 +
[]$ sudo ln -s /usr/local/lib/fpc/3.3.1/ppc386
 +
[]$ sudo ln -s /usr/local/lib/fpc/3.3.1/ppcx64
 +
</syntaxhighlight>
  
=== Xcode Compatability ===
+
Обратите внимание, что вам потребуется создать новый <code>ppc386</code> компилятор, если вы хотите продолжить компилировать 32-битные приложения, заменив эти строки (это невозможно после Xcode 11.3.1 и macOS 10.14.6 Mojave из-за удаления Apple'ом 32-битных фреймворков):
Information relating to older versions of FPC, Lazarus and Apple Developer Tools
 
  
==== Compatibility with Xcode 5.0 and newer versions (Mac OS X 10.8, 10.9, 10.10 and 10.11) ====
+
<syntaxhighlight lang=sh>
Like Xcode 4.3+, Xcode 5 and subsequent versions no longer install the command line tools by default. These are required by FPC/Lazarus, however. Unlike in Xcode 4 the installation option is no longer accessible in Xcode 5 via the Downloads tab. Additionally, the "Locations" tab of the preferences dialog may be confusing, as it mentions that the command line tools are installed:
+
[]$ make clean all FPC=/usr/local/lib/fpc/3.2.2/ppcx64 OS_TARGET=darwin CPU_TARGET=x86_64 OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/"
 +
[]$ sudo make install FPC=$PWD/compiler/ppcx64 OS_TARGET=darwin CPU_TARGET=x86_64
 +
</syntaxhighlight>
  
<gallery>
+
с этими двумя строками:
Image:xcode5 misleading screenshot.png|Default location of command line tools in Xcode 5.
 
Image:xcode select.png|Installation of command line tools with the xcode-select command part 1...
 
Image:command line tools installation on mavericks.png|...and part 2.
 
</gallery>
 
  
The first dialog box shows that by default the command line tools are only installed inside the Xcode.app bundle itself. To install them globally, as required by FPC/Lazarus, execute the following terminal command:
+
<syntaxhighlight lang=sh>
<syntaxhighlight lang="bash">
+
[]$ make clean all FPC=/usr/local/lib/fpc/3.2.2/ppc386 OS_TARGET=darwin CPU_TARGET=i386 OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/"
xcode-select --install
+
[]$ sudo make install FPC=$PWD/compiler/ppc386 OS_TARGET=darwin CPU_TARGET=i386
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Depending from your Xcode version alternative steps to install the command line developer tools may be to download them directly in the Xcode preferences window (see screenshots above) or to download them from [http://developer.apple.com developer.apple.com] (please take care to install the command line tools that are correct exactly for your Xcode version).
+
==== FPC Fixes 3.2 ====
  
*You can compile and install the normal gdb. See [[GDB on OS X Mavericks and Xcode 5]].
+
Создайте каталог, в который вы хотите поместить исходный код (например, <tt>fpc_fixes32</tt> в вашем домашнем каталоге). Вам не нужно быть root, чтобы сделать это. Это может сделать любой нормальный пользователь. Откройте Applications > Utilities > Terminal и выполните следующие действия:
  
==== Xcode 4.3+ compatibility (Mac OS X 10.7/10.8) ====
+
<syntaxhighlight lang=sh>
Xcode 4.3 and later no longer install the command line tools by default. These are required by FPC/Lazarus.
+
[]$ git clone -b fixes_3_2 https://gitlab.com/freepascal.org/fpc/source.git fpc_fixes32
 +
</syntaxhighlight>
  
To install them manually, open Xcode, go to Preferences, select "Downloads;" and install the "Command Line Tools". Afterwards, FPC will install and function correctly.
+
Это создаст каталог с именем <tt>fpc_fixes32</tt> и загрузит в него исходный код FPC.
  
<gallery>
+
Чтобы впоследствии обновить локальную копию исходного кода репозитория последними изменениями исходного кода, вы можете просто сделать:
Image:install command line tools 1.png
 
Image:install command line tools 2.png
 
Image:install command line tools 3.png
 
</gallery>
 
  
It will be necessary to reinstall the command line tools after each upgrade of Xcode (especially when it's a new major version, the installer may delete the old copies of the command line tools), and also after switching to a new major version of the system software (idem). You may also download the command line tools from [https://developer.apple.com/download/more/?=command%20line%20tools Apple Developer].
+
<syntaxhighlight lang=sh>
 +
[]$ cd fpc_fixes32
 +
[]$ git clean -f -d
 +
[]$ git pull
 +
</syntaxhighlight>
  
==== Xcode 3.2.x compatibility (Mac OS X 10.6) ====
+
Чтобы собрать и установить FPC (выделенный текст должен быть на одной строке):
FPC 2.6.0: there is an issue when compiling dynamic libraries with FPC under Mac OS X 10.6 due to a bug in the Xcode 3.2.x linker. This bug has been fixed in Xcode 4. You can work around the bug in Xcode 3.2.x by using the -k-no_order_inits command line parameter when compiling a dynamic library.
 
  
==== Xcode 3.1.x compatibility (Mac OS X 10.5) ====
+
<syntaxhighlight lang=sh highlight=3>
Most versions of Lazarus and FPC are compatible with Xcode 3.1 (see the [[#Compatibility|compatibility]] matrix for detailed reference). The Xcode integration kit is provided as an optional install to allow for developing with Free Pascal directly from Xcode. It is not required for development with Lazarus, however.
+
[]$ cd
 +
[]$ cd fpc_fixes32
 +
[]$ make distclean all FPC=/usr/local/lib/fpc/3.2.2/ppcx64 OS_TARGET=darwin CPU_TARGET=x86_64 OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/"
 +
[]$ sudo make install FPC=$PWD/compiler/ppcx64 OS_TARGET=darwin CPU_TARGET=x86_64
 +
</syntaxhighlight>
  
==== Xcode 2.x compatibility (Mac OS X 10.4) ====
+
Вам также потребуется обновить ссылки для компилятора в <tt>/usr/local/bin</tt>, которые будут указывать на предыдущую версию FPC. Например:
Most versions of Lazarus and FPC are compatible with Xcode 2.3 or newer (see the [[#Compatibility|compatibility]] matrix for detailled reference). The Xcode integration kit is provided as an optional install to allow for developing with Free Pascal directly from Xcode. It is not required for development with Lazarus, however. Xcode 2.0 was compatible with Lazarus 0.9.x, but it is no longer supported by newer versions of the Lazarus IDE.
 
  
== Install Packages / Released version ==
+
<syntaxhighlight lang=sh>
 +
[]$ cd /usr/local/bin
 +
[]$ sudo rm ppc386
 +
[]$ sudo rm ppcx64
 +
[]$ sudo ln -s /usr/local/lib/fpc/fixes-3.2/ppc386
 +
[]$ sudo ln -s /usr/local/lib/fpc/fixes-3.2/ppcx64
 +
</syntaxhighlight>
  
=== Installation from disk images ===
+
Обратите внимание, что вам потребуется создать новый <code>ppc386</code> компилятор, если вы хотите продолжить компилировать 32-битные приложения, заменив эти строки (это невозможно после Xcode 11.3.1 и macOS 10.14.6 Mojave из-за удаления Apple'ом 32-битных фреймворков):
  
Download the three disk images (.dmg files) for fpc, fpcsrc and lazarus from either of the following links:
+
<syntaxhighlight lang=sh>
 
+
[]$ make clean all FPC=/usr/local/lib/fpc/3.2.2/ppc386 OS_TARGET=darwin CPU_TARGET=i386 OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/"
* [http://sourceforge.net/projects/lazarus/files/Lazarus%20Mac%20OS%20X%20i386/ Intel-based Macs]
+
[]$ sudo make install FPC=$PWD/compiler/ppc386 OS_TARGET=darwin CPU_TARGET=i386
* [http://sourceforge.net/projects/lazarus/files/Lazarus%20Mac%20OS%20X%20powerpc/ PowerPC-based Macs]
+
</syntaxhighlight>
 
 
Open up each disk image and install in this order:
 
# fpc
 
# fpcsrc
 
# Lazarus
 
  
After installation the Lazarus application can be found in /Developer/lazarus/, the FPC source files in /usr/local/share/fpcsrc.
+
== Известные проблемы и решения ==
  
If you receive a "Can't find unit Interfaces used by Project1" error on trying to compile a blank form, check the following settings in Lazarus (should be set by default):
+
=== Lazarus IDE v2.2.0 - проблема пересборки ===
  
Environment Options
+
<div class="mw-collapsible mw-collapsed">
  Lazarus directory: /Developer/lazarus
 
  Compiler path: /usr/local/bin/ppc386 (PowerPC Macs: /usr/local/bin/ppcppc)
 
  FPC Source: /usr/local/share/fpcsrc
 
  
Project | Options
+
Любая попытка пересобрать IDE Lazarus из самой себя завершается ошибкой с правами доступа, поскольку файлы и каталоги принадлежат пользователю с идентификатором 503, в то время как большинство пользователей обнаружат, что их идентификатор равен 501. Решение состоит в том, чтобы открыть Applications > Utilities> Terminal и:
  All paths blank
 
  LCL Widget Type: default (Carbon beta)
 
  
Project | Inspector
+
<div class="mw-collapsible-content">
  Required Packages
+
cd /Applications
      LCL
+
  sudo chown -R your_username Lazarus
   
 
Note - different versions of Lazarus depend on particular versions of the FreePascal compiler and will not work with other versions.
 
  
Another common problem is that the versions of fpc and fpcsrc are different.
+
==== Следующие ошибки пересборки не возникают на компьютерах Intel ====
  
This is the easiest way to install Lazarus on Mac OS X.
+
Следующая ошибка заключается в том, что компилятор ресурсов «fpcres» может быть не найден. Решение состоит в том, чтобы создать файл <tt>.fpc.cfg</tt> (обратите внимание на начальную точку) в вашем домашнем каталоге и добавить в него следующие строки:
  
== Install from Source / Development version ==
+
#include /etc/fpc.cfg
 +
-FD/usr/local/bin
  
You need the latest stable released FPC installed in order to compile the development version.
+
чтобы "fpcres" можно было найти там, где он был установлен.
  
=== Download and install a compiler ===
+
Следующая ошибка указывает на неподдерживаемую целевую архитектуру <tt>-Paarch64</tt> с советом вместо этого вызвать драйвер компилятора "fpc", не взирая на то, что мы уже делаем. Решение состоит в том, чтобы перейти в Lazarus > Preferences > Compiler к исполняемому файлу компилятора, для которого установлено значение <tt>/usr/local/bin/fpc</tt>, и изменить его на <tt>/usr/local/lib/fpc/3.2.2/ppca64</tt>.
  
Download and install the FPC package: https://sourceforge.net/project/showfiles.php?group_id=89339
+
Теперь среда IDE будет успешно пересобрана, но не перезапустится автоматически. Попытка затем запустить Lazarus с помощью значка<tt>startlazarus.app</tt>  или значка <tt>lazarus.app</tt> в  <tt>/Applications/Lazarus</tt> по-прежнему будет приводить к запуску исходного двоичного файла Intel lazarus. Правильный бинарный файл aarch64 можно найти в <tt>~/.lazarus/bin/aarch64-darwin/lazarus</tt>. Таким образом, окончательное решение — открыть Application > Utilities > Terminal и:
  
There are two development versions of the compiler: 2.6.x is stable version without new features - only bug fixes. The unstable version 2.7.x comes with lots of new features but sometimes also with bugs. Best is to download and install fpc 2.6.x. Some daily snapshots can be found [http://snapshots.lazarus.shikami.org/lazarus/ here]. Keep in mind that these are daily snapshots and that you can have bad luck and get a buggy version. The probability is about 1:30. So if the version is buggy try another day or use the released packages instead.
+
mv /Applications/Lazarus/lazarus /Applications/Lazarus/lazarus.old
 +
mv  ~/.lazarus/bin/aarch64-darwin/lazarus /Applications/Lazarus/
  
= Uninstalling Lazarus and Free Pascal =
+
Затем вы можете запустить IDE с помощью значков <tt>startLazarus.app</tt> или <tt>lazarus.app</tt>. Когда вы перезапустите lazarus, стоит вернуться в Lazarus > Preferences > Compiler к исполняемому файлу компилятора, для которого установлено значение <tt>/usr/local/lib/fpc/3.2.2/ppca64</tt>, и изменить его обратно на <tt>/usr/local/bin/fpc</tt>, чтобы вы могли скомпилировать двоичные файлы как для aarch64, так и для Intel, чтобы, например, создать [[macOS_Big_Sur_changes_for_developers#Creating_a_universal_binary_for_aarch64_and_x86_64|Universal Binary]], который будет работать как на машинах Intel, так и на машинах aarch64.
 +
</div></div>
  
== Installed using fink ==
+
=== Lazarus IDE - Unable to "run without debugging" ===
  
The complete uninstall of all fpc and lazarus packages is done with:
+
<div class="mw-collapsible mw-collapsed">
  
<syntaxhighlight lang="bash">
+
Если вы используете Lazarus IDE 2.0.10 и пункт меню «Выполнить > Запустить без отладки» не работает с диалоговым окном, подобным:
fink purge --recursive fpc-config
 
</syntaxhighlight>
 
  
If you want to preserve changes to the preference file /sw/etc/fpc.cfg, do:
+
<div class="mw-collapsible-content">
  
<syntaxhighlight lang="bash">
+
[[file:run_dialog_fail.png|350px]]
fink remove --recursive fpc-config
 
</syntaxhighlight>
 
  
For the removal of the Lazarus preference folder and files in your home directory, see below ([[#Lazarus preference folder .lazarus in the home directory | Lazarus preference folder]]).
+
затем вам необходимо исправить исходный код Lazarus 2.0.10 ({{MantisLink|37324}} и {{MantisLink|36780}}). В частности, исправьте <tt>../ide/main.pp</tt>, как показано ниже (неисправленные строки показаны первыми, исправленные строки показаны вторыми):
  
== Installed from disk images or sources ==
+
  7243,7245c7243,7245
 +
  <    if RunAppBundle
 +
  <        and FileExistsUTF8(Process.Executable)
 +
  <    and FileExistsUTF8('/usr/bin/open') then
 +
  ---
 +
  >    if RunAppBundle then
 +
  >    //    and FileExistsUTF8(Process.Executable)
 +
  >    //and FileExistsUTF8('/usr/bin/open') then
  
Normally you uninstall an application on OS X simply by dragging it from the Applications folder to the trash. But because Lazarus and Free Pascal are development tools, they're installed in several folders that you don't normally see in Finder.
+
и перекомпилируйте Lazarus IDE.  
  
You can copy and save the commands below to file uninstallLaz.sh and run it if you need to uninstall Lazarus and Free Pascal. You can usually install newer versions of Lazarus and Free Pascal over older versions, but as with most software it's not a bad idea to clean out everything before you install a newer version. This list of commands should also give you a sense of where the various pieces of Lazarus and Free Pascal are located.
+
Кроме того, вы можете не исправлять исходный код и просто перекомпилировать Lazarus 2.0.10 с FPC 3.0.4.
  
<syntaxhighlight lang="bash">
+
Аналогичные действия по исправлению и перекомпиляции или просто перекомпиляции с FPC 3.0.4 необходимо выполнить для Lazarus 2.0.8, если он был скомпилирован с FPC 3.2.0.
bin=/usr/local/bin
+
</div></div>
share=/usr/local/share
 
lib=/usr/local/lib
 
receipts=/Library/Receipts
 
private=/private/etc
 
  
rm -fv $bin/ppcppc
+
=== Обновление с Mojave (10.14) до Catalina (10.15) ===
rm -fv $bin/ppc386
 
rm -fv $bin/bin2obj
 
rm -fv $bin/data2inc
 
rm -fv $bin/delp
 
rm -fv $bin/fd2pascal
 
rm -fv $bin/fpc
 
rm -fv $bin/fpcmake
 
rm -fv $bin/fpcmkcfg
 
rm -fv $bin/fpcsubst
 
rm -fv $bin/fpdoc
 
rm -fv $bin/fprcp
 
rm -fv $bin/h2pas
 
rm -fv $bin/h2paspp
 
rm -fv $bin/makeskel
 
rm -fv $bin/mkxmlrpc
 
rm -fv $bin/plex
 
rm -fv $bin/postw32
 
rm -fv $bin/ppdep
 
rm -fv $bin/ppudump
 
rm -fv $bin/ppufiles
 
rm -fv $bin/ppumove
 
rm -fv $bin/ptop
 
rm -fv $bin/pyacc
 
rm -fv $bin/rstconv
 
rm -fv $bin/unitdiff
 
rm -r $private/lazarus
 
rm -r $bin/lazarus
 
rm -r $share/lazarus
 
rm -r $share/fpcsrc
 
rm -r $share/doc/fpc-2.2.2
 
rm -r $share/examples/fpc-2.2.2
 
  
rm -r $lib/fpc
+
<div class="mw-collapsible mw-collapsed">
  
rm -r $receipts/lazarus-*.pkg
+
* Выполните <code>sudo xcode-select --install</code>
rm -r $receipts/fpcsrc-*.pkg
 
rm -r $receipts/fpc-*.pkg
 
  
rm -fv /etc/fpc.cfg
+
<div class="mw-collapsible-content">
</syntaxhighlight>
 
  
Note that this assumes you have version 2.2.2 snapshot of Free Pascal installed. If you have a different version, change the two relevant commands to specify your version.
+
* Чтобы Lazarus мог найти файл <tt>crt1.10.5.o</tt>, измените в <tt>/etc/fpc.cfg</tt> -Fl после '#ifdef cpux86_64' с
 +
-Fl/Applications/Xcode.app/Contents/Developer/Toolchain...
 +
на
 +
-Fl/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/
 +
</div></div>
  
To run this script, change to the directory where it's stored and enter:
+
=== Сборка компилятора FPC, начиная с Mojave (10.14) и далее ===
  
<syntaxhighlight lang="bash">
+
<div class="mw-collapsible mw-collapsed">
chmod +x uninstallLaz.sh
 
sudo ./uninstallLaz.sh
 
</syntaxhighlight>
 
  
Then enter your password when prompted.
+
* Чтобы найти файл crt1.10.5.o при сборке более поздней версии Free Pascal Compiler из исходного кода, необходимо указать:
  
=== Lazarus preference folder .lazarus in the home directory ===
+
<div class="mw-collapsible-content">
  
'''''Note:'''''  Lazarus also creates a .lazarus folder in your home directory where it stores environment settings and a list of recently opened projects and files. You can leave this folder alone if you want the new version of Lazarus you're installing to use your old settings. macOS normally doesn't show files or folders whose names start with a dot (.). To see this folder and its contents, enter the following in a terminal window:
+
  OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/"
  
<syntaxhighlight lang="bash">
+
в командной строке make, потому что FPC игнорирует файл конфигурации <tt>/etc/fpc.cfg</tt> во время сборки.
cd ~/
+
</div></div>
ls -al
 
cd .lazarus
 
ls
 
</syntaxhighlight>
 
  
To remove it, execute the following commands:
+
=== ЧаВо по установке на Mac ===
  
<syntaxhighlight lang="bash">
+
* См. [[Mac Installation FAQ]], чтобы узнать о решениях других распространенных проблем, которые могут возникнуть во время (и после) установки Lazarus и Free Pascal на macOS.
cd ~/
 
rm -rv .lazarus
 
</syntaxhighlight>
 
  
= Known issues =
+
== Деинсталляция Lazarus и Free Pascal ==
  
*FPC 2.4.4 has a bug. You can not compile the IDE with the range check flag '''-Cr'''.
+
Обратитесь к [[Uninstalling Lazarus on macOS|Удаление Lazarus в macOS]] для получения информации о вариантах удаления.
*On OS X 10.4 you have to manually uninstall any previous version before installing a new dmg. Delete the following files and folders:
 
**/Developer/lazarus
 
**/Library/Receipts/lazarus.pkg
 
**/etc/lazarus
 
**/usr/local/bin/lazbuild
 
  
= See Also =
+
== Устаревшая информация ==
  
* [[Mac Installation FAQ]]
+
See [[Legacy Information: Installing Lazarus on Mac|Legacy Information]] for details of:
  
==Other Interfaces==
+
* Installing Lazarus on Mac OS X 10.4 (Tiger), Mac OS X 10.5 (Leopard), OS X 10.8 (Mountain Lion)
{{Interfaces}}
+
* Installing Lazarus 2.0.8, 2.0.10 with FPC 3.2.0 for macOS 10.10 and earlier
 +
* Installing Lazarus 2.0.8 with FPC 3.2.0 for macOS 10.11+
 +
* Installing Lazarus on PowerPC-based Macs
 +
* Old Xcode versions
 +
* Installing the gdb debugger
 +
* Compatibility matrix for Lazarus 1.0.0 through 1.6.4 and FPC 2.6.0 through 3.0.2.
  
===Platform specific Tips===
+
= См. также =
*[[OS X Programming Tips]] - Lazarus installation, useful tools, Unix commands, and more...
 
*[[WinCE Programming Tips]] - Using the telephone API, sending SMSes, and more...
 
*[[Windows Programming Tips]] - Desktop Windows programming tips.
 
  
===Mac How To Articles===
+
* [[Xcode]].
* [https://www.macforbeginners.com/articles/ Mac How] - Если у вас возникли проблемы в решении некоторых серьезных проблем ([[User:Zoltanleo|прим.перев.]]: поправил ссылку на похожую, поскольку в оригинальной статье ссылка заблокирована спам-фильтром и ведет на левый сайт).
+
* [[Other macOS installation options]].
 +
* [[Multiple Lazarus|Installing multiple Lazarus versions]].
 +
* [[Portal:Mac|Mac Portal]] for an overview of development for macOS with Lazarus and Free Pascal.
 +
* [[Mac Installation FAQ]] for solutions to the most frequent problems that may arise during (and after) installation of Lazarus and Free Pascal on macOS.
  
===Interfaces Development Articles===
+
= Внешние ссылки =
*[[Carbon interface internals]] - If you want to help improving the Carbon interface
 
*[[Windows CE Development Notes]] - For Pocket PC and Smartphones
 
*[[Adding a new interface]] - How to add a new widget set interface
 
*[[LCL Defines]] - Choosing the right options to recompile LCL
 
*[[LCL Internals]] - Some info about the inner workings of the LCL
 
  
[[Category:Mac OS X]]
+
* [https://sourceforge.net/projects/macos-lazarus-snapshots/files/intel/ Lazarus daily development version download] (Intel x86_64)
[[Category:Install]]
+
* [https://sourceforge.net/projects/macos-lazarus-snapshots/files/arm64/ Lazarus + FPC daily development version downloads] (M1, ARM64, aarch64)
[[Category:Lazarus]]
+
* [https://www.syncfusion.com/succinctly-free-ebooks/git GIT Succinctly] - Free Ebook (PDF, MOBI, EPUB) from SyncFusion.
 +
* [https://mac.install.guide/commandlinetools/6.html Uninstall Xcode Command Line Tools]
 +
* [https://mac.install.guide/commandlinetools/7.html Reinstall Xcode Command Line Tools]

Latest revision as of 08:10, 26 July 2022

English (en) español (es) 한국어 (ko) русский (ru)

macOSlogo.png

Эта статья относится только к macOS.

См. также: Multiplatform Programming Guide


Установка Lazarus на Mac не особенно сложна, но очень важно выполнить установку в правильном порядке. Пропуск шагов почти наверняка приведет к плачу Ярославны. Вкратце, вот что вы должны сделать -

  1. Загрузить и установить Xcode.
  2. Установить глобальные инструменты командной строки для Xcode.
  3. Установить Free Pascal Compiler и исходники FPC
  4. Установить Lazarus
  5. Настроить LLDB - поставляемый (и подписанный) Apple отладчик от Lazarus.
Light bulb  Примечание: если вы устанавливаете версии Lazarus до 2.0.0, вам почти наверняка понадобится gdb, см. раздел Legacy.


Установка

В подробных инструкциях предполагается, что на вашем Mac установлена последняя версия macOS, последняя версия Xcode от Apple и последняя версия Lazarus. Внизу страницы, под устаревшей документацией, вы увидите более старую информацию, которая может иметь значение, если вы используете старые компоненты. Вы можете помочь, заменив устаревшую информацию, либо удалив ее, либо, если это может помочь кому-то, работающему с унаследованным проектом, переместить ее в конец страницы.

В общем, речь идет об использовании набора виджетов Carbon и Cocoa. Хотя Carbon все еще можно считать немного более стабильным, на момент выпуска 2.0.0 64-битное Cocoa очень близко [к стабильному] и, безусловно, его следует учитывать. Carbon намеренно (Apple) ограничен 32 битами, и мы знаем, что следующая версия MacOSX, вероятно, не будет его поддерживать.

Шаг 1. Загрузка Xcode (необязательно).

Xcode — это загрузка 12ГБ архива, которая займет после распаковки 16ГБ дискового пространства. Имеет смысл заружать и устанавливать полную среду разработки Xcode, только если вам нужны:

  • SDK для iOS, iPadOS, watchOS и tvOS; или
  • для проверки и загрузки приложений в Mac App Store; или
  • нотариально заверять приложения для распространения за пределами Mac App Store.

Xcode 11.3.1 для использования в macOS 10.14 Mojave теперь необходимо устанавливать, загрузив его из Apple Developer Connection (ADC), для чего требуется бесплатная регистрация. Xcode 12.4.x для использования в macOS 10.15 Catalina и более поздних версиях можно установить из магазина приложений Mac App store. Обратите внимание, что вы должны сначала переместить все старые версии Xcode из папки «Приложения» в корзину или переименовать приложение Xcode (например, Xcode.app в Xcode_1014.app). Затем вы можете выбрать, какую версию Xcode использовать с помощью утилиты командной строки xcode-select. Откройте Applications > Utilities > Terminal (Приложения > Инструменты > Терминал) и введите man xcode-select для показа страниц руководства по этой утилите.

Старые системы:

Инструменты разработчика Xcode можно установить с исходных установочных дисков macOS или более новой копии, загруженной из Apple Developer Connection (ADC), для чего требуется бесплатная регистрация. Загрузите файл Xcode, он окажется в вашем каталоге загрузок в виде zip-файла. Нажмите на нее. Он разархивируется в каталог Downloads(Загрузки). Вам может повезти, а может быть и нет. Другие пользователи увидят путь к нему, но не смогут его использовать. А это - непорядок. Чтобы исправить это недоразумение, я переместил свой, а затем указал xcode-select, куда он был перемещен (в терминале) -

mv Downloads/Xcode.app /Developer/.
sudo xcode-select -s /Developer/Xcode.app/Contents/Developer

Шаг 2. Инструменты командной строки Xcode

Это раздел показан как отдельный шаг, потому что это действительно отдельный шаг. Не путайте эти автономные инструменты командной строки с внутренними инструментами командной строки Xcode, о которых графический интерфейс Xcode сообщит вам, что они уже установлены, если вы установили полный пакет Xcode на шаге 1. FPC не может использовать эти внутренние инструменты командной строки Xcode без изменений конфигурации ( подробности см. в Xcode).

Сделайте следующее, это быстро и легко для всех версий macOS до Catalina 10.15 включительно:

sudo xcode-select --install
sudo xcodebuild -license accept


Для Big Sur 11.x и более поздних версий вам нужно ввести только первую из двух приведенных выше команд, если вы также не установили полный пакет Xcode. Если вы установили только инструменты командной строки, вам не следует вводить команду xcodebuild.

Если у вас возникли проблемы с установкой инструментов командной строки с использованием этого метода командной строки (например, программа установки зависает при «поиске программного обеспечения»), вы также можете загрузить и установить пакет инструментов командной строки, зайдя на Apple Developer Site и загрузив и установив образ диска Command Line Tools for Xcode.

Шаг 3 Бинарные файлы FPC и исходный код FPC

Light bulb  Примечание: Для установки Apple Silicon/AArch64/M1, если вы устанавливаете FPC 3.2.2 (Lazarus 2.2RCx или 2.2.0 или более поздние версии), вам не нужно компилировать собственную версию FPC для Apple Silicon, поскольку FPC 3.2.2 для macOS универсальный двоичный файл, содержащий исполняемые файлы Intel и aarch64. Если вы устанавливаете более раннюю, чем 3.2.2, версию FPC, обратитесь к этим инструкциям для создания собственного компилятора Apple Silicon Free Pascal после установки 64-разрядного двоичного файла Intel и исходных пакетов для FPC.

Загрузите и установите официальный пакет двоичных файлов FPC и отдельный пакет исходного кода FPC из области файлов Lazarus IDE.

Когда вы доберетесь до области файлов Lazarus IDE:

  1. Выберите правильную версию вашей операционной системы. Подавляющее большинство пользователей Mac теперь должны выбирать 64-битные пакеты в каталоге Lazarus macOS x86-64. Каждый компьютер Mac с конца 2006 года поддерживает 64-разрядную версию. Тот факт, что Apple полностью отказалась от 32-битной поддержки в macOS 10.15 Catalina (выпущенной в октябре 2019 года), является еще одной причиной для выбора 64-битных пакетов.
  2. Выберите версию Lazarus, которую вы хотите установить, и вам будут представлены два бинарных и исходных пакета FPC для загрузки.

Эти установочные пакеты создаются разработчиками FPC/Lazarus и отслеживают официальные выпуски. Поскольку эти установочные пакеты не одобрены Apple, вам нужно, удерживая нажатой клавишу Control, щелкнуть пакет, выбрать «Открыть» и подтвердить, что вы хотите установить его от неизвестного разработчика (Unknown Developer).

На этом этапе вы можете попробовать простой и быстрый тест FPC — Тестирование установки FPC.

Установка Lazarus

Крайне важно, чтобы совместимый компилятор Free Pascal (FPC) и его исходный код был установлен перед установкой Lazarus IDE.

Light bulb  Примечание: Для установки на Apple Silicon/AArch64 обратитесь к инструкциям Lazarus Fixes 2.2 или Lazarus development, чтобы создать собственную IDE Lazarus. Перейдите к инструкциям по сборке и используйте загрузку исходного кода Lazarus Fixes 2.2/Lazarus development по своему усмотрению.

Загрузите и установите Lazarus IDE из области файлов Lazarus IDE. Когда вы доберетесь до этой области файлов, выберите правильную версию вашей операционной системы. Подавляющее большинство пользователей Mac теперь должны выбирать 64-битные пакеты в каталоге Lazarus macOS x86-64. Каждый компьютер Mac с конца 2006 года поддерживает 64-разрядную версию. Тот факт, что Apple полностью отказалась от 32-битной поддержки в macOS 10.15 Catalina (выпущенной в октябре 2019 года), является еще одной причиной для выбора 64-битных пакетов.

Настройка отладчика

В версиях Lazarus 1.8.4 и более ранних версиях вам нужно было использовать gdb в качестве отладчика, медленно устанавливать и тяжело подписывать. Начиная с Lazarus 2.0.0 вы можете (и должны) использовать LLDB, отладчик, предоставляемый Apple, подпись [для которого] не требуется.

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

Сначала нажмите Tools(Инструменты)->Options(Параметры)->Debugger(Отладчик). В правом верхнем углу открытого окна есть надпись "Debugger type and path"(Тип и путь отладчика), вы должны задать оба [значения]. Выберите "LLDB debugger (with fpdebug) (Beta)"(Отладчик LLDB (с помощью fpdebug) (Beta)).

Set Debugger2.png

Если его нет в списке выбора, см. ниже (Установка LazDebuggerFpLLdb). Обратите внимание, что изображение выше имеет путь к LLDB, который может отличаться от вашего, в зависимости от того, где были установлены инструменты XCode, в моем случае /Library. Сохраните эти настройки, и теперь вы можете попытаться скомпилировать практически пустую программу, которую Lazarus любезно предоставил для вас (щелкните маленький зеленый треугольник в верхнем левом углу).

Далее вы видите загадочный вопрос, см. изображение ниже. Выберите "Debug Format"(формат отладки) из предложенных -

Set Dwarf.png

Martin_fr (человек, который дал нам этот интерфейс между Lazarus и LLDB) предлагает вам использовать "dwarf3". Затем вам нужно ввести свой пароль: MacOSX хитроумна, потому что одно приложение мешает другому. В этом случае это хорошо!

Дополнительная информация по использованию LLDB

В этой ветке форума появляется много информации об использовании LLDB. Вот еще несколько самоцветов от Martin_fr:

В случае непредвиденных проблем стоит попробовать "dwarf with sets" взамен используемому "dwarf3".

Параметр "debug info" влияет только на модули непосредственно в вашем проекте. Однако модули в пакетах также могут иметь отладочную информацию. Это может быть

  • установка в пакете
  • для многих, но не для всех пакетов в меню Tools(Сервис) > Configure build Lazarus(Настройка сборки Lazarus)
  • project settings (настройки проекта) > Дополнения и переопределения

Если вы измените настройки для пакета, вы также можете проверить, в какой пакет вы планируете перейти. Пакет, в который вы не входите, не требует отладочной информации. Если вы используете тип из пакета (такой, как TForm из LCL), то достаточно, чтобы ваш модуль (в котором вы объявляли переменную и(или) использовали переменную для включения типа) имел отладочную информацию. Уменьшение количества пакетов с отладочной информацией (в том числе тех, которые по умолчанию имеют отладочную информацию) может сократить время запуска отладчиков.

Также, возможно, стоит сравнить (не проверено) время запуска отладчиков для тех же настроек, только изменив флажок "use external debug info" (использовать внешнюю информацию отладки).

Это должно быть установлено только в вашем проекте. Если установлен в вашем проекте, это повлияет на все пакеты. (Если он установлен в пакете, он ничего не сделает/по крайней мере, не должен ...)

Установка LazDebuggerFpLLdb

Если вы установились из исходного кода и [при этом] использовали параметр bigide [утилиты make], то правильный отладчик будет установлен, как пакет, и [сразу будет] готов к работе. Однако, если вы установили другим способом, [отладчика] там может и не оказаться. На главном экране IDE выберите Packages(Пакеты) -> Install/Uninstall Packages (Установить/удалить пакеты). Show - это два списка пакетов, слева - список уже установленных, справа - доступных для установки. Ищите LazDebuggerFpLldb (именно его, есть некоторые схожие названия, но менее подходящие пакеты). Если он справа, щелкните его, нажмите "Install Selection" (Установить выделенное), а затем "Save and rebuild IDE" (Сохранить и пересобрать IDE). Это займет немного времени, IDE выключится и перезапустится, и все должно быть хорошо. Теперь вернитесь на страницу и продолжите настройку отладчика.

Cocoa 64-бит в сравнении с Carbon 32-бит

Использование 64-битной платформы Cocoa от Apple теперь, несомненно, является будущим для Mac. 32-разрядная платформа Apple Carbon, хотя больше не разрабатывается, но работает почти так же, как и ожидалось. Однако мы бы порекомендовали сначала попробовать Cocoa, поскольку Apple прекратила поддержку 32-разрядных приложений и 32-разрядной платформы Carbon в macOS 10.15 Catalina (октябрь 2019 г.) .

Можно собрать Cocoa-версию Lazarus IDE, начиная с версии 2.0.0 и выше. Также можно собрать Carbon-версию Lazarus IDE (если вы не используете macOS 10.15 Catalina или более позднюю версию) и использовать ее для создания 64-битных двоичных файлов Cocoa.

Чтобы создавать приложения Cocoa в Carbon или Cocoa IDE, вам необходимо установить Target для 64-битного процессора и выбрать набор виджетов Cocoa:

  • Откройте свой проект с помощью Lazarus и в меню выберите Project > Project Options.
  • На панели "Config and Target" (Конфигурация и цель) установите для "Target CPU family"(Целевое семейство ЦП) значение "x86_64" (Intel) или "aarch64" (Apple M1).
  • На панели "Config and Target" (Конфигурация и цель), если "Current LCL widgetset"(Текущий набор виджетов LCL) не установлен для Cocoa, нажмите "Select another LCL widgetset" (Выбрать другой набор виджетов LCL), который перенесет вас на панель "Additions and Overrides" (Дополнения и перекрытия), где вы можете нажать выпадающее меню "Set LCLWidgetType"(Присвоить "LCLWidgetType") и установите значение "Cocoa"
  • Убедитесь, что в разделе Tools (Сервис) > Options(Настройки) (> Preferences (Параметры) для Lazarus в версии 2.2.0 и более поздних версиях) для параметра "Compiler Executable" (Исполнимый файл компилятора) установлено значение «/usr/local/bin/fpc», чтобы получить 64-разрядные приложения.
  • Теперь скомпилируйте свой проект и, пожалуйста, сообщите о любых проблемах, с которыми вы столкнулись.

Матрица совместимости FPC + Lazarus

Не всякая комбинация [версий] Lazarus и Free Pascal совместима с любой установкой macOS. Пожалуйста, обратитесь к следующей таблице, чтобы найти правильную версию для вашей среды разработки:

Lazarus Compatibility Matrix
Lazarus 1.8.x Lazarus 2.0.y Lazarus 2.0.8 Lazarus 2.0.10 Lazarus 2.0.12 Lazarus 2.2.y
FPC 3.0.4 FPC 3.2.0 FPC 3.2.2
PPC processors
Mac OS X 10.4 (Tiger) Incompatible Incompatible Incompatible Incompatible Incompatible Incompatible Incompatible
Mac OS X 10.5 (Leopard) Not tested Not tested Incompatible Incompatible Incompatible Incompatible Incompatible
Intel processors
Mac OS X 10.4 (Tiger) Incompatible Incompatible Incompatible Incompatible Incompatible Incompatible Incompatible
Mac OS X 10.5 (Leopard) Not tested Compatible^ Not tested Compatible^** Not tested Not tested Not tested
Mac OS X 10.6 (Snow Leopard) Compatible Compatible^^ Not tested Not tested Not tested Not tested Not tested
Mac OS X 10.7 (Lion) Compatible Not tested Not tested Not tested Not tested Not tested Not tested
OS X 10.8 (Mountain Lion) Compatible^^ Compatible Compatible**# Compatible**# Compatible**# Compatible# Compatible
OS X 10.9 (Mavericks) Compatible^^ Compatible Compatible** Compatible** Not tested Not tested Not tested
OS X 10.10 (Yosemite) Compatible^^ Compatible Compatible** Compatible** Not tested Not tested Not tested
OS X 10.11 (El Capitan) Compatible^^ Compatible Compatible*** Compatible Compatible Compatible Comptaible
macOS 10.12 (Sierra) Compatible^^ Compatible Compatible*** Compatible Compatible Compatible Compatible
macOS 10.13 (High Sierra) Not tested Compatible Compatible*** Compatible Compatible Compatible Comptaible
macOS 10.14 (Mojave) Not tested Compatible Compatible*** Compatible Compatible Compatible Compatible
macOS 10.15 (Catalina) Not tested Compatible Compatible*** Compatible Compatible Compatible Compatible
macOS 11 (Big Sur) Not tested Compatible Compatible*** Compatible Compatible Compatible Compatible
macOS 12 (Monterey) Not tested Not tested Not tested Not tested Not tested Not tested Compatible
macOS 13 (Ventura) Not tested Not tested Not tested Not tested Not tested Not tested Compatible
macOS 14 (Sonoma) Not tested Not tested Not tested Not tested Not tested Not tested Compatible
Apple Silicon M series processors
macOS 11 (Big Sur) Not tested Not tested Not tested Compatible†† Compatible†† Compatible††† Compatible*
macOS 12 (Monterey) Not tested Not tested Not tested Compatible†† Compatible†† Compatible††† Compatible*
macOS 13 (Ventura) Not tested Not tested Not tested Compatible†† Compatible†† Compatible††† Compatible*
macOS 14 (Sonoma) Not tested Not tested Not tested Compatible†† Compatible†† Compatible††† Compatible*

x = 0, 2 or 4; y = 0, 2, 4 or 6

^ Carbon interface compiles - Cocoa does not.

^^ Restrictions apply to debugging with gdb.

* Lazarus 2.2.0 installs universal binaries for FPC 3.2.2, but an Intel Lazarus IDE binary which you can use or recompile the IDE from within itself for a native aarch64 version.

** See Installing Lazarus 2.0.8, 2.0.10 with FPC 3.2.0 for macOS 10.10 and earlier for instructions.

*** See Installing Lazarus 2.0.8 with FPC 3.2.0 for macOS 10.11+ for instructions.

# Cannot run without debugging in the IDE. Can run compiled application outside of the IDE. See Issue #37324. Choose the gdb debugger, change timeout option to false or click through five "timeout" dialogs to run with debugging in the IDE.

Cannot "run without debugging" in the IDE. Can run compiled application outside of the IDE. See Lazarus IDE - Unable to "run without debugging" for workaround. See Issue #36780.

†† You need to compile a native aarch64 version of FPC 3.3.1 (trunk) and Lazarus 2.0.12 from source to support an Apple Silicon M series processor. Refer to these instructions for FPC and these instructions for the Lazarus IDE.

††† After installing FPC 3.2.2, you need to compile a native aarch64 version of Lazarus from source to support an Apple Silicon M series processor. Refer to these instructions for compiling the Lazarus IDE.

See the legacy version of this compatibility matrix for recommended installs on very old versions of macOS.

Установка невыпущенных версий Lazarus IDE

Прим.перев: настоятельно советую для НЕрелизных сборок компилятора и Лазаруса использовать fpcupdeluxe

Lazarus Fixes 2.2

Есть ряд причин, по которым вам может быть лучше использовать нерелизную версию Lazarus, в частности, fixes_2_2. Особенно:

  • Вам почти наверняка нужно ориентироваться на 64-битный Cocoa, macOS 10.15 Catalina и более поздние версии вообще не поддерживают 32-битный Carbon.
  • Набор виджетов Cocoa постоянно улучшался, а интерфейс отладчика lldb быстро улучшался, начиная с версии 2.0.0.
  • Если на вашем Mac установлен процессор Apple M1, отладчик в fixes_2_2 теперь работает для aarch64.
  • Fixes_2_2 — более безопасный и стабильный вариант, чем ветка разработки, но все равно получает новые функции намного быстрее, чем релизная версия.

Предварительно скомпилированные двоичные файлы на основе fixes_2_2 недоступны в SourceForge, поэтому мы загружаем и собираем их из исходного кода. Сначала немного медленный, но очень надежный и отличный тест установки вашего компилятора! Вам понадобится git, который включен во все последние версии инструментов командной строки Xcode, которые вы уже должны были установить (см. Инструменты командной строки Xcode выше).

Касательно svn или git: инструменты командной строки Xcode 11.4 в macOS 10.15 больше не устанавливают svn, только git. Вы можете установить Subversion через fink, порты или brew.

Additional notes for building a native aarch64 Lazarus IDE for an Apple Silicon M1 processor Mac

Убедитесь, что вы скомпилировали собственный компилятор Free Pascal aarch64 (как это сделать, см. в разделе Поддержка Apple Silicon).

Light bulb  Примечание: Выпуск FPC 3.2.2 включает в себя универсальные двоичные файлы, которые изначально будут работать как на aarch64 (64-разрядная версия ARM — Apple Silicon M1), так и на x86_64 (64-разрядная версия Intel), поэтому вам больше не нужно компилировать свои собственные из исходного кода.

При сборке Lazarus IDE измените CPU_TARGET в приведенных ниже инструкциях с x86_64 (64-разрядная версия Intel) на aarch64 (64-разрядная версия ARM — Apple Silicon M1).

Загрузка исходного кода Lazarus Fixes 2.2

Создайте каталог для Lazarus и загрузите текущую версию исправлений:

cd
mkdir -p bin/lazarus
cd bin/lazarus

С использованием git:

git clone -b fixes_2_2 https://gitlab.com/freepascal.org/lazarus/lazarus.git laz_fixes

С использованием svn:

svn checkout https://github.com/fpc/Lazarus/branches/fixes_2_2 laz_fixes

В зависимости от вашего интернет-соединения и загруженности сервера это может занять от нескольких секунд до нескольких минут.

Обновление исходного кода Lazarus Fixes 2.2

Чтобы поддерживать установку fixes_2_2 в актуальном состоянии, достаточно просто:

С использованием git:

cd ~/bin/lazarus/laz_fixes
git clean -f -d
git pull

С использованием svn:

cd ~/bin/lazarus/laz_fixes
svn clean --remove-unversioned
svn update

Сборка исходного кода Lazarus Fixes 2.2

cd laz_fixes
make distclean all LCL_PLATFORM=cocoa CPU_TARGET=x86_64 bigide
//-wait some time...
open startlazarus.app --args "--pcp=~/.laz_fixes"
  • Примечание. Я передаю параметр для использования каталога конфигурации, основанного на имени фактического каталога установки. Это упрощает написание некоторых сценариев.
  • В более старых версиях macOS, поддерживающих 32-битные приложения, замените приведенную выше строку make на "make LCL_PLATFORM=carbon CPU_TARGET=i386 bigide " и настройте свой проект, как указано в разделе Carbon в сравнении с Cocoa выше.

Возможно, вы захотите поместить небольшой скрипт в каталог $HOME/bin и даже указать путь к нему (очень UNIX!)

#!/bin/bash
LAZDIR="laz_fixes"
cd ~/bin/lazarus/"$LAZDIR"
open ~/bin/lazarus/"$LAZDIR"/lazarus.app --args "--pcp=~/.$LAZDIR"

Разрабатываемая версия Лазаруса

Предварительно скомпилированные двоичные файлы, основанные на версии для разработки (известной как "trunk" в SVN; теперь известна как "main" в GIT) среды разработки Lazarus недоступны в SourceForge, поэтому можно загрузить исходный код версии для разработки с помощью svn или git и собрать IDE Lazarus. Вам понадобится svn (до macOS 10.15 — Catalina) или git (после macOS 10.14 — Mojave), который включен в автономные инструменты командной строки Xcode, которые вы уже должны были установить (см. Инструменты командной строки Xcode выше).


  • When working with an Apple Silicon M1 processor Mac ensure you use the FPC 3.2.2 or later as it provides a universal binary with both a native aarch64 and Intel compiler. If you must use an earlier FPC than 3.2.2 see Apple Silicon Support for how to do this. When building the Lazarus IDE, change the CPU_TARGET in the instructions below from x86_64 (Intel 64 bit) to aarch64 (ARM 64 bit - Apple Silicon M1).

Скачивание исходного кода разрабатываемой версии Lazarus

cd
mkdir -p bin/lazarus
cd bin/lazarus

С использованием git:

git clone -b main https://gitlab.com/freepascal.org/lazarus/lazarus.git laz_main

С использованием svn:

svn checkout --depth files https://github.com/fpc/Lazarus/branches all
cd all
svn update --set-depth infinity main

Приведенный выше вызов svn более сложен из-за бага во многих версиях Subversion. В качестве обходного пути рекомендуется использование утилиты Альфреда (он же Don Alfredo на форуме), который является создателем fpcupdeluxe.

Обновление исходников версии Lazarus для разработки

Чтобы обновить существующий исходный код версии Lazarus для разработки, следует сделать следующее:

С использованием git:

cd ~/bin/lazarus/laz_main
git clean -f -d
git pull

С использованием svn:

cd ~/bin/lazarus/laz_trunk
svn cleanup --remove-unversioned
svn update

Сборка исходного кода версии Lazarus для разработки

make distclean all LCL_PLATFORM=cocoa CPU_TARGET=x86_64 bigide
//-wait some time...
open startlazarus.app --args "--pcp=~/.laz_dev"

Что делает аргумент make bigide?

Аргумент bigide make добавляет в Lazarus кучу пакетов, которые многие находят полезными и без которых не могут обойтись. Пакеты, которые добавляются:

  • cairocanvas
  • chmhelp
  • datetimectrls
  • externhelp
  • fpcunit
  • fpdebug
  • instantfpc
  • jcf2
  • lazcontrols
  • lazdebuggers
  • lclextensions
  • leakview
  • macroscript
  • memds
  • onlinepackagemanager
  • pas2js
  • PascalScript
  • printers
  • projecttemplates
  • rtticontrols
  • sdf
  • sqldb
  • synedit
  • tachart
  • tdbf
  • todolist
  • turbopower_ipro
  • virtualtreeview

Приведенный выше список взят из [Lazarus source directory]/IDE/Makefile.fpc и может быть изменен.

Обратите внимание: если вы не скомпилировали свою собственную Lazarus IDE с аргументом bigide, вы можете установить любой из этих пакетов самостоятельно, используя диалоговое окно Lazarus IDE Package > Install/Uninstall Packages...

Установка незарелизенных версий FPC

Установка из исходников

В настоящее время существует две незарелизенные ветки компилятора Free Pascal: ветка разработки (trunk) и ветка Fixes 3.2, которая включает дополнительные исправления выпущенной версии 3.2.2. Разработчики и те, кто любит находиться на переднем крае и тестировать новые функции и исправления, выберут версию для разработчиков; а обычные пользователи, которые хотят использовать стабильную ветку с некоторыми дополнительными исправлениями, начиная с последней версии выпуска, выберут ветку Fixes. Приведенные ниже инструкции охватывают обе эти ветви.

Исходный код хранится в системе контроля версий под названием git:

  • macOS 10.5 и выше уже содержат git-клиент командной строки, если вы установили утилиты командной строки Xcode.
  • Вам также необходимо установить последнюю релизную версию компилятора Free Pascal (3.2.2 по состоянию на март 2022 г.), чтобы иметь возможность успешно скомпилировать разрабатываемую (trunk) версию.
Light bulb  Примечание: При сборке нативного компилятора Free Pascal под aarch64 (ppca64) для процессора Apple Silicon M1 Mac измените CPU_TARGET в приведенных ниже инструкциях с x86_64 (64-разрядная версия Intel) на aarch64 (64-разрядная версия ARM — Apple Silicon M1) и измените любую ссылку с ppcx64 на ppca64

FPC веросия для разработчиков

Обратите внимание, что поскольку версия FPC для разработки (известная как "trunk" в SVN; теперь известная как main в GIT) по определению все еще находится в стадии разработки, некоторые функции могут измениться до того, как они попадут в релизную версию.

Создайте каталог, в который вы хотите поместить исходный код (например, fpc_main в вашем домашнем каталоге). Вам не нужно быть root, чтобы сделать это. Это может сделать любой нормальный пользователь. Откройте Applications > Utilities > Terminal и выполните следующие действия:

 []$ git clone -b main https://gitlab.com/freepascal.org/fpc/source.git fpc_main

Это создаст каталог с именем fpc_main и загрузит в него основной исходный код FPC.

Чтобы впоследствии обновить локальный репозиторий исходного кода последними изменениями исходного кода, вы можете просто сделать:

 []$ cd
 []$ cd fpc_main
 []$ git clean -f -d
 []$ git pull

Чтобы собрать и установить FPC (выделенный текст должен быть на одной строке):

 []$ cd
 []$ cd fpc_main
 []$ make distclean all FPC=/usr/local/lib/fpc/3.2.2/ppcx64 OS_TARGET=darwin CPU_TARGET=x86_64 OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/"
 []$ sudo make install FPC=$PWD/compiler/ppcx64 OS_TARGET=darwin CPU_TARGET=x86_64

Вам также потребуется обновить ссылки для компилятора в /usr/local/bin, которые будут указывать на предыдущую версию FPC. Например:

 []$ cd /usr/local/bin
 []$ sudo rm ppc386
 []$ sudo rm ppcx64
 []$ sudo ln -s /usr/local/lib/fpc/3.3.1/ppc386
 []$ sudo ln -s /usr/local/lib/fpc/3.3.1/ppcx64

Обратите внимание, что вам потребуется создать новый ppc386 компилятор, если вы хотите продолжить компилировать 32-битные приложения, заменив эти строки (это невозможно после Xcode 11.3.1 и macOS 10.14.6 Mojave из-за удаления Apple'ом 32-битных фреймворков):

 []$ make clean all FPC=/usr/local/lib/fpc/3.2.2/ppcx64 OS_TARGET=darwin CPU_TARGET=x86_64 OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/"
 []$ sudo make install FPC=$PWD/compiler/ppcx64 OS_TARGET=darwin CPU_TARGET=x86_64

с этими двумя строками:

 []$ make clean all FPC=/usr/local/lib/fpc/3.2.2/ppc386 OS_TARGET=darwin CPU_TARGET=i386 OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/"
 []$ sudo make install FPC=$PWD/compiler/ppc386 OS_TARGET=darwin CPU_TARGET=i386

FPC Fixes 3.2

Создайте каталог, в который вы хотите поместить исходный код (например, fpc_fixes32 в вашем домашнем каталоге). Вам не нужно быть root, чтобы сделать это. Это может сделать любой нормальный пользователь. Откройте Applications > Utilities > Terminal и выполните следующие действия:

 []$ git clone -b fixes_3_2 https://gitlab.com/freepascal.org/fpc/source.git fpc_fixes32

Это создаст каталог с именем fpc_fixes32 и загрузит в него исходный код FPC.

Чтобы впоследствии обновить локальную копию исходного кода репозитория последними изменениями исходного кода, вы можете просто сделать:

 []$ cd fpc_fixes32
 []$ git clean -f -d
 []$ git pull

Чтобы собрать и установить FPC (выделенный текст должен быть на одной строке):

 []$ cd
 []$ cd fpc_fixes32
 []$ make distclean all FPC=/usr/local/lib/fpc/3.2.2/ppcx64 OS_TARGET=darwin CPU_TARGET=x86_64 OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/"
 []$ sudo make install FPC=$PWD/compiler/ppcx64 OS_TARGET=darwin CPU_TARGET=x86_64

Вам также потребуется обновить ссылки для компилятора в /usr/local/bin, которые будут указывать на предыдущую версию FPC. Например:

 []$ cd /usr/local/bin
 []$ sudo rm ppc386
 []$ sudo rm ppcx64
 []$ sudo ln -s /usr/local/lib/fpc/fixes-3.2/ppc386
 []$ sudo ln -s /usr/local/lib/fpc/fixes-3.2/ppcx64

Обратите внимание, что вам потребуется создать новый ppc386 компилятор, если вы хотите продолжить компилировать 32-битные приложения, заменив эти строки (это невозможно после Xcode 11.3.1 и macOS 10.14.6 Mojave из-за удаления Apple'ом 32-битных фреймворков):

 []$ make clean all FPC=/usr/local/lib/fpc/3.2.2/ppc386 OS_TARGET=darwin CPU_TARGET=i386 OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/"
 []$ sudo make install FPC=$PWD/compiler/ppc386 OS_TARGET=darwin CPU_TARGET=i386

Известные проблемы и решения

Lazarus IDE v2.2.0 - проблема пересборки

Любая попытка пересобрать IDE Lazarus из самой себя завершается ошибкой с правами доступа, поскольку файлы и каталоги принадлежат пользователю с идентификатором 503, в то время как большинство пользователей обнаружат, что их идентификатор равен 501. Решение состоит в том, чтобы открыть Applications > Utilities> Terminal и:

cd /Applications
sudo chown -R your_username Lazarus

Следующие ошибки пересборки не возникают на компьютерах Intel

Следующая ошибка заключается в том, что компилятор ресурсов «fpcres» может быть не найден. Решение состоит в том, чтобы создать файл .fpc.cfg (обратите внимание на начальную точку) в вашем домашнем каталоге и добавить в него следующие строки:

#include /etc/fpc.cfg
-FD/usr/local/bin

чтобы "fpcres" можно было найти там, где он был установлен.

Следующая ошибка указывает на неподдерживаемую целевую архитектуру -Paarch64 с советом вместо этого вызвать драйвер компилятора "fpc", не взирая на то, что мы уже делаем. Решение состоит в том, чтобы перейти в Lazarus > Preferences > Compiler к исполняемому файлу компилятора, для которого установлено значение /usr/local/bin/fpc, и изменить его на /usr/local/lib/fpc/3.2.2/ppca64.

Теперь среда IDE будет успешно пересобрана, но не перезапустится автоматически. Попытка затем запустить Lazarus с помощью значкаstartlazarus.app или значка lazarus.app в /Applications/Lazarus по-прежнему будет приводить к запуску исходного двоичного файла Intel lazarus. Правильный бинарный файл aarch64 можно найти в ~/.lazarus/bin/aarch64-darwin/lazarus. Таким образом, окончательное решение — открыть Application > Utilities > Terminal и:

mv /Applications/Lazarus/lazarus /Applications/Lazarus/lazarus.old
mv  ~/.lazarus/bin/aarch64-darwin/lazarus /Applications/Lazarus/

Затем вы можете запустить IDE с помощью значков startLazarus.app или lazarus.app. Когда вы перезапустите lazarus, стоит вернуться в Lazarus > Preferences > Compiler к исполняемому файлу компилятора, для которого установлено значение /usr/local/lib/fpc/3.2.2/ppca64, и изменить его обратно на /usr/local/bin/fpc, чтобы вы могли скомпилировать двоичные файлы как для aarch64, так и для Intel, чтобы, например, создать Universal Binary, который будет работать как на машинах Intel, так и на машинах aarch64.

Lazarus IDE - Unable to "run without debugging"

Если вы используете Lazarus IDE 2.0.10 и пункт меню «Выполнить > Запустить без отладки» не работает с диалоговым окном, подобным:

run dialog fail.png

затем вам необходимо исправить исходный код Lazarus 2.0.10 (Issue #37324 и Issue #36780). В частности, исправьте ../ide/main.pp, как показано ниже (неисправленные строки показаны первыми, исправленные строки показаны вторыми):

 7243,7245c7243,7245
 <     if RunAppBundle
 <         and FileExistsUTF8(Process.Executable)
 <     and FileExistsUTF8('/usr/bin/open') then
 ---
 >     if RunAppBundle then
 >     //    and FileExistsUTF8(Process.Executable)
 >     //and FileExistsUTF8('/usr/bin/open') then

и перекомпилируйте Lazarus IDE.

Кроме того, вы можете не исправлять исходный код и просто перекомпилировать Lazarus 2.0.10 с FPC 3.0.4.

Аналогичные действия по исправлению и перекомпиляции или просто перекомпиляции с FPC 3.0.4 необходимо выполнить для Lazarus 2.0.8, если он был скомпилирован с FPC 3.2.0.

Обновление с Mojave (10.14) до Catalina (10.15)

  • Выполните sudo xcode-select --install
  • Чтобы Lazarus мог найти файл crt1.10.5.o, измените в /etc/fpc.cfg -Fl после '#ifdef cpux86_64' с
-Fl/Applications/Xcode.app/Contents/Developer/Toolchain...

на

-Fl/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/

Сборка компилятора FPC, начиная с Mojave (10.14) и далее

  • Чтобы найти файл crt1.10.5.o при сборке более поздней версии Free Pascal Compiler из исходного кода, необходимо указать:
 OPT="-XR/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/"

в командной строке make, потому что FPC игнорирует файл конфигурации /etc/fpc.cfg во время сборки.

ЧаВо по установке на Mac

  • См. Mac Installation FAQ, чтобы узнать о решениях других распространенных проблем, которые могут возникнуть во время (и после) установки Lazarus и Free Pascal на macOS.

Деинсталляция Lazarus и Free Pascal

Обратитесь к Удаление Lazarus в macOS для получения информации о вариантах удаления.

Устаревшая информация

See Legacy Information for details of:

  • Installing Lazarus on Mac OS X 10.4 (Tiger), Mac OS X 10.5 (Leopard), OS X 10.8 (Mountain Lion)
  • Installing Lazarus 2.0.8, 2.0.10 with FPC 3.2.0 for macOS 10.10 and earlier
  • Installing Lazarus 2.0.8 with FPC 3.2.0 for macOS 10.11+
  • Installing Lazarus on PowerPC-based Macs
  • Old Xcode versions
  • Installing the gdb debugger
  • Compatibility matrix for Lazarus 1.0.0 through 1.6.4 and FPC 2.6.0 through 3.0.2.

См. также

Внешние ссылки