Настройка lazarus на linux
Обновлено: 06.07.2024
Итак, наконец-то я добрался и до кросскомпиляции. Не то, чтобы мне было это сильно надо (я по-прежнему считаю, что надежнее собирать проект на той ОСи, для которой он предназначен), но тут просто стало интересно. Про кросскомпиляцию на Wiki (особенно под Windows) рассказано в довольно общих чертах и не добавляет ясности в этом вопросе :)
Различают Host-платформу (сборка Лазаруса, на которой собирается проект) и Target-платформу (ОСь определенной разрядности, для которой собирается проект). Я опишу процесс сборки кросскомпилятора для Linux_i386 (Target) на win-x32 сборке Лазаруса (Host) и для Windows x32 (Target) на линуксовой i386 сборке Lazarus.
1. Кросскомпиляция на Windows.
1. Для начала скачиваем отсюда и запускаем последний релиз замечательной программки fpcupdeluxe нужной разрядности и соответствующей ОСи
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?")
Соглашаемся и повторяем процесс сборки. Он довольно длительный по времени, поэтому стоит запастись терпением. По окончанию процесса в информационной панели можно будет увидеть, куда установились бинарники кросскомпилятора:
5. Теперь настраиваем Лазарус. Забегая вперед, скажу, что для кросскомпиляции лучше использовать отдельную сборку среды, чтобы не мучиться с переключением (как сделать, чтобы IDE сохраняла настройки в "своей" папке).
Для указания путей к бинарникам открываем настройки Tools --> Options --> Environment --> Files
6. И, наконец, создаем новый проект, открываем его настройки Project --> Project Options --> Compiler options --> Paths, где указываем путь к библиотекам для сборки проекта
- для Target OS (-T) выбрать Linux
- для Target CPU family (-P) выбрать i386
- в комбобоксе "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
(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
- для 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 (установлено по умолчанию)
- выбрать GNU debugger (gdb)
- выбрать путь /usr/bin/gdb (установлено по умолчанию)
- для Target OS (-T) выбрать Win32
- для Target CPU family (-P) выбрать i386
- в комбобоксе "LCLWidgetType" выбрать "Value "win32"
Проверяем полученный бинарник на целевой ОСи
Как можно заметить, кросскомпиляция на линуксе во многом проще, чем на Windows.
Читайте также: