Lazarus компиляция для windows

Установка Lazarus и Free Pascal Compiler в Linux и Windows

26.08.2004
Смирнов Сергей

В этом деле есть два пути: простой и сложный. Простой путь заключается в том, чтобы просто скачать и установить бинарный релиз Lazarus, ссылку на который можно без особого труда найти на сайте проекта. Наиболее крупный недостаток этого пути — то, что версия системы будет не самая новая. В условиях относительно быстрого развития проекта придется мучительно долго ждать очередного бинарного релиза, чтобы заполучить какую-нибудь «вкусность». Поэтому, рассмотрим второй путь, тем более, что первый и описывать особо нечего. Сразу хочу предупредить, что зеркала ftp-серверов fpc обновляются довольно хаотично, поэтому будьте внимательны к датам файлов, которые собираетесь закачать.

Установка в Windows

Для начала нужно запастись всем необходимым. Я имею ввиду набор пакетов, необходимых для сборки и запуска Lazarus. Их всего три: бинарный релиз компилятора fpc, исходники Lazarus и исходники компилятора. Минимально потребуются первые два. Я не хочу давать точные ссылки на них, так как они чрезвычайно изменчивы. Лучше расскажу, как их искать. Бинарный релиз fpc можно обнаружить и на сайте самого fpc и на сайте Lazarus. Лучше брать тот, который свежее. Распаковав полученный архив в отдельный каталог, запустим install.exe и, если для обратного нет веских оснований, согласимся установить компилятор в предложенный каталог C:\pp. После этого добавим в переменную окружения PATH (в файле autoexec.bat) путь к компилятору, причем обязательно в начало, например так:

И перезагрузим компьютер. Далее будем искать самые новые исходники Lazarus. На практике — это ежедневный снапшот текущих исходников проекта, который можно обнаружить на каком-нибудь из зеркал ftp-сервера разработчиков fpc в каталоге вроде /pub/fpc/snapshot/lazarus. Скачаем и разархивируем (это будет архив lazarus.zip) исходники, допустим, в каталог C:\Lazarus, после чего запустим сеанс MS-DOS и выполним команды (их можно записать в bat-файл и запускать его):

Здесь мы в начале переходим в каталог исходных кодов, а затем просто запускаем сборку проекта в «автоматическом режиме». И не спрашивайте, зачем надо сначала скомпилировать файл ресурсов. Так устроен fpc в Windows. Последняя команда выглядит немного странно, но поверьте, без нее не обойтись. Когда мы будем пересобирать Lazarus из него самого (это необходимо при установке пакетов), он попытается перезаписать файл lazarus.exe и если тот будет загружен, а следовательно заблокирован операционной системой Windows, то случится ошибка линковщика. Именно поэтому мы переименовываем исполняемый файл и запускаем именно его. Разумеется, не обязательно использовать имя lazarus1.exe. Это может быть lazarus_safe.exe или любое другое имя, допустимое в ОС. Учитывая, что перекомпилировать Lazarus нам придется неоднократно, добавим в наш пакетный файл команды очистки. В итоге, например у меня, получается следующее:

Если Lazarus благополучно собрался, то можно уже запустить lazarus1.exe (или как Вы его там назвали). И первое сообщение, которое мы увидим будет о том, что не указан каталог с исходниками fpc. Это нормально. Продолжим работу. Через пару секунд система закончит грузиться и мы сможем удовлетворенно покидать контролы на макет формы автоматически создавшегося проекта. Без исходников fpc ничего больше сделать не получится.

Если компиляция Lazarus завершилась сообщением об ошибке или его запуск вызвал ошибку, то проще всего день подождать и попытаться с новым снапшотом, либо получить обновление через сервер cvs проекта. Как правило Lazarus должен собираться той версией компилятора, которая рекомендуется на сайте Lazarus и которую мы, надеюсь, и установили. Итак, будем считать, что все в порядке. Приступим к заключительному этапу.

Читайте также:  Что такое цикл linux

И тут нас может ждать одна большая проблема: довольно часто команда разработчиков fpc не снабжает промежуточный релиз компилятора исходниками. Именно так обстоят дела с последней на сегодня версией 1.9.4. Оставим это на их совести и посмотрим, что можно сделать. К счастью, разработчики Lazarus сами заботятся об этом и на их сайте обычно можно найти исходники практически точно соответствующие банарному релизу компилятора. Если окажется, что это не так, у нас не будет другого выхода, как собрать компилятор самостоятельно или «накатить» бинарный снапшот. Последний способ представляется мне гораздо более затратным. Есть в обновлении компилятора и другой соблазн: все невизуальные компоненты Lazarus входят в состав библиотеки fcl, которая является частью компилятора, поэтому собирать новейшую версию Lazarus старым fpc зачастую просто не имеет смысла.

Для начала скачаем снапшот исходников fpc с одного из зеркал его сервера. Обычно это . /pub/fpc/snapshot/v19/source/fpc.zip или что-то вроде того. Распакуем архив в любое место (наверное, лучше, чтобы путь был без пробелов) и запустим сеанс MS-DOS, в котором вначале перейдем в корневой каталог исходников (это там, где каталоги compiler, demo, doc и т.д.), а потом (в предположении, что fpc у нас установлен в C:\pp\bin\win32) выполним пару команд:

Разумеется, если первая из команд завершится с ошибкой, то вторую выполнять не следует. В этом случае лучше подождать немного или, наоборот, взять более старые исходники. Больше ничего делать не надо. Если обе команды отработали успешно, то считайте, что у Вас уже новый компилятор. Теперь заново соберем и запустим Lazarus. Если это удалось сделать, то остается только указать ему каталог с исходниками fpc с помощью меню environment-environment options (окружение-параметры окружения). Если удалось найти исходники для уже готового бинарного дистрибутива fpc, то шаги с перекомпиляцией компилятора и Lazarus можно опустить. Всё. Lazarus готов к работе.

В заключение, не могу не заметить, что с каждым разом дистрибутив, подготовленный разработчиками Lazarus и включающий в себя всё необходимое, становится всё лучше и лучше. Пройдёт ещё немного времени и описанные здесь манипуляции будут нужны разве что для срочной сборки текущей девелоперской версии системы.

Установка в Linux

Если Вы еще не прочитали начало предыдущей главы, то самое время это сделать, потому, что установка Lazarus в Linux начинается с того-же самого: добывания установочных пакетов. Разница лишь в том, что бинарный дистрибутив fpc должен быть пригодным для Вашего дистрибутива Linux. У меня ASPLinux на 3-х дисках и поэтому я скачал и без малейших проблем установил rpm-пакет fpc 1.9.4. Исходники Lazarus и более свежей версии fpc у меня остались от установки под Windows.

Если у Вас простенький однодисковый дистрибутив, то, скорее всего, Вам придется сделать две вещи: доустановить пакеты binutils, make и gdb (которые проще всего найти на ftp-сервере разработчика дистрибутива) и создать симлинки на кой-какие библиотеки, используемые Lazarus. Например, для ALTLinux Junior мне пришлось выполнить вот такой нехитрый скрипт:

После этого можно собрать Lazarus просто командой make, находясь в корне каталога его исходников. «Пляски с бубном» как в Windows тут не нужны. В случае успешной сборки в этом каталоге появится исполняемый файл lazarus. Его и надо запускать. Еще удобнее создать на него ссылку на рабочем столе. И точно также надо указать расположение исходников используемой версии компилятора fpc. Если они у Вас есть. Если их нет, придется перекомпилировать компилятор. Как и в Windows, исходники fpc надо распаковать куда-нибудь и из их корневого каталога выполнить команды:

Только, в отличие от Windows, этого не будет достаточно. Вторая команда установит компилятор по-умолчанию куда-нибудь вроде /usr/local/lib/fpc в подкаталог 1.9.5, который можно там и оставить, а можно положить рядом с исходным, который у меня, например, лежит в /usr/lib/fpc. Можно также задать нужные префиксы еще при сборке, если не лень. Дальше необходимо создать новый файл конфигурации fpc.cfg, для чего предусмотрен специальный скрипт, который и надо выполнить, находясь в каталоге нового компилятора (у меня получилось в /usr/lib/fpc/1.9.5):

Читайте также:  Восстановление удаленного файла linux

Здесь /etc — это каталог, где у Вас лежит fpc.cfg. И, наконец, последнее, что нужно сделать — это создать новый симлинк (ppc386) в каталоге /usr/bin на новый компилятор. Всё. Еще раз компилируем Lazarus и если все нормально — можно работать.

«Подводные камни». Их, наверное, много, но я заметил пока два. Первый — если не удалить каталог /home/ваш_логин/.lazarus с настройкими среды, то можно получить мощный сбой при автоматической загрузке последнего проекта, если он использовал какой-нибудь нестандартный пакет (его ведь ещё не успели установить). Для борьбы с этим в последних версиях Lazarus даже предусмотрен специальный ключ командной строки —skip-last-project. Второй связан с русификацией. Если у Вас стоит локаль cp1251, то при первом запуске Lazarus на экране будут «иероглифы», так как русификация Lazarus рассчитана на KOI-8R. Придется действовать вслепую. Вот так можно выбрать меню «Окружение»-«Параметры окружения»:

И установить нужную кодовую страницу русификации среды Lazarus:

Дальше надо нажать «OK», закрыть и повторно запустить Lazarus. Если удалить каталог с его настройками, то эту забавную процедуру придется повторить снова. В остальном, все проходит относительно гладко. Среда напоминает Delphi, хотя есть и отличия. Некоторое недоумение вызывает отсутствие компонент для работы с источниками данных. Разработчики объясняют это связью соответствующих пакетов с нестандартными библиотеками, в случае отсутствия которых эффект будет напоминать описанный выше первый «подводный камень». Но, что есть — то есть. На самом деле, установить пакет довольно легко, но это уже отдельная тема.

Lazarus компиляция для windows

Итак, наконец-то я добрался и до кросскомпиляции. Не то, чтобы мне было это сильно надо (я по-прежнему считаю, что надежнее собирать проект на той ОСи, для которой он предназначен), но тут просто стало интересно. Про кросскомпиляцию на Wiki (особенно под Windows) рассказано в довольно общих чертах и не добавляет ясности в этом вопросе 🙂

Различают Host-платформу (сборка Лазаруса, на которой собирается проект) и Target-платформу (ОСь определенной разрядности, для которой собирается проект). Я опишу процесс сборки кросскомпилятора для Linux_i386 (Target) на win-x32 сборке Лазаруса (Host) и для Windows x32 (Target) на линуксовой i386 сборке Lazarus.

1. Кросскомпиляция на Windows.

1. Для начала скачиваем отсюда и запускаем последний релиз замечательной программки fpcupdeluxe нужной разрядности и соответствующей ОСи

2. Определяем директорию, куда будут скачаны исходники и собраны бинарные файлы (напр., D:\Archive\development\fpcup)
3. В окне «FPC version» выбираем «trunk» и жмакаем кнопку «Only FPC» (если Lazarus у вас еще не установлен, можно установить заодно и его, выбрав соответственно тип сборки в окне «Lazarus version» и нажав «Install/Update FPC + Laz»)

4. После установки FPC (и Лазаруса, если его не было) необходимо скачать сорцы и библиотеки, а также и скомпилировать бинарники для кросскомпиляции

Выбираем требуемую разрядность и ОСь (напомню, я задался целью собрать кросскомпилятор для Linux-i386) и жмем кнопку «Install cross-compiler».

В процессе закачки и последующей сборки fpcupdeluxe ругнется на отсутствие утилит для сборки кросскомпилятора и предложит их скачать («The building of a crosscompiler failed due to missing cross-tools. Fpcupdeluxe can try to download them if available! Do you want to continue?»)

Соглашаемся и повторяем процесс сборки. Он довольно длительный по времени, поэтому стоит запастись терпением. По окончанию процесса в информационной панели можно будет увидеть, куда установились бинарники кросскомпилятора:

Читайте также:  Установка vmware tool для windows

5. Теперь настраиваем Лазарус. Забегая вперед, скажу, что для кросскомпиляции лучше использовать отдельную сборку среды, чтобы не мучиться с переключением (как сделать, чтобы IDE сохраняла настройки в «своей» папке).

Для указания путей к бинарникам открываем настройки Tools —> Options —> Environment —> Files

  • для Compiler executable выбрать D:\Archive\development\fpcup\fpc\bin\i386-win32\ppcross386.exe
  • для FPC source directory выбрать D:\Archive\development\fpcup\fpcsrc
  • для «Make» executable выбрать D:\Archive\development\fpcup\fpc\bin\i386-win32\make.exe

Для настройки отладчика идем сюда Tools —> Options —> Environment —> Debugger

  • выбрать GNU debugger (gdb)
  • выбрать путь D:\Archive\development\fpcup\fpcbootstrap\gdb.exe

Закрываем окно с настройками среды.

6. И, наконец, создаем новый проект, открываем его настройки Project —> Project Options —> Compiler options —> Paths, где указываем путь к библиотекам для сборки проекта

  • для Libraries (-Fl) выбрать d:\development\fpcup\cross\lib\i386-linux (отобразится ..\..\..\development\fpcup\cross\lib\i386-linux)

Указываем целевые ОСь и разрядность процессора, для которых компилируется проект Project —> Project Options —> Compiler options —> Congig and Target

  • для Target OS (-T) выбрать Linux
  • для Target CPU family (-P) выбрать i386

Если после указания Libraries (-Fl) автоматически не установилась ссылка на виджеты Target-ОСи, то устанавливаем их вручную Project —> Project Options —> Compiler options —> Additions and Overrides

  • в комбобоксе «LCLWidgetType» выбрать «Value «GTK2».

Теперь компилируем проект (лучше по + , иначе получим формальную ошибку отладчика). В окне сообщений после окончания процесса сборки получаем положительный результат

Проверяем полученный бинарник на целевой ОСи

2. Кросскомпиляция на Linux.

В качестве линуксовой ОСи я опишу установку на Debian 9. Рабочей директорией для fpcupdeluxe будет /home/leyba/development/fpcup.

1. Устанавливаем svn-клиент, если он еще не установлен
2. Если у вас не установлены пакеты для компиляции Lazarus, то сначало будет выдано предупреждение об отсутствии отладчика

fpcupdeluxe: WARNING: LazarusNativeInstaller (ConfigModule: lazarus): No GNU gdb found./home/leyba

а затем fpcupdeluxe прервет установку с сообщением об отсутствии библиотек

(9015) Linking ../lazarus
/usr/bin/ld: cannot find -lgdk-x11-2.0
/usr/bin/ld: cannot find -lX11
/usr/bin/ld: cannot find -lgdk_pixbuf-2.0
/usr/bin/ld: cannot find -lgtk-x11-2.0
/usr/bin/ld: cannot find -lpango-1.0
/usr/bin/ld: cannot find -lcairo
/usr/bin/ld: cannot find -lpangocairo-1.0

Поэтому последовательно качаем
и ставим пакет x11proto-print-dev
Затем и остальные пакеты одной строкой
(для Debian 9)
3. Ставим компилятор (и если необходимо, то и Lazarus) аналогично тому, как это описано для Windows

4. Теперь устанавливаем кросскомпилятор аналогично описанному для Windows, но с той разницей, что нужно будет выбрать опции CPU = i386, OS = Windows

5. Открываем настройки Lazarus Tools —> Options —> Environment —> Filesи устанавливаем следующие опции

  • для Compiler executable выбрать /home/leyba/development/fpcup/fpc/bin/i386-linux/fpc.sh (установлено по умолчанию)
  • для FPC source directory выбрать /home/leyba/development/fpcup/fpcsrc (установлено по умолчанию)
  • для «Make» executable выбрать /usr/bin/make (установлено по умолчанию)

6. Для указания отладчика идем сюда Tools —> Options —> Environment —> Debuggerи устанавливаем опции

  • выбрать GNU debugger (gdb)
  • выбрать путь /usr/bin/gdb (установлено по умолчанию)

7. Создаем новый проект и в опциях проекта Project —> Project Options —> Compiler options —> Congig and Targetуказываем ОСь и разрядность CPU

  • для Target OS (-T) выбрать Win32
  • для Target CPU family (-P) выбрать i386

а также набор виджетов (напомню, мы планируем создать кросскомпиляцию приложения для win_x32) — идем сюда Project —> Project Options —> Compiler options —> Additions and Overrides

  • в комбобоксе «LCLWidgetType» выбрать «Value «win32»

Все, теперь можно сохранить проект, а затем скомпилировать его по + (но не запускать по — получите ошибку отладчика!)

Проверяем полученный бинарник на целевой ОСи

Как можно заметить, кросскомпиляция на линуксе во многом проще, чем на Windows.

Оцените статью