Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus - Кроссплатформенность / 25 сообщений из 68, страница 1 из 3
14.09.2021, 12:38
    #40097536
san7667
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Добрый день!
Кто юзает Lazarus, подскажите пожалуйста реально ли настроить компилятор таким образом, что бы он компилил сразу на Windows и Линукс?
...
Рейтинг: 0 / 0
14.09.2021, 12:57
    #40097542
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
san7667,

нельзя. Или туда, или сюда. По очереди, то есть.
...
Рейтинг: 0 / 0
14.09.2021, 13:00
    #40097544
amsdev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Можно !

Скачайте FpcUpDeluxe, там можно выбрать установку кросс-компиляторов. Т.е. Лазарус сможет под виндой собрать бинарник под Linux (но не запускать/отлаживать).
...
Рейтинг: 0 / 0
14.09.2021, 14:01
    #40097563
b0rk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
san7667,

я в свое время настраивал компиляцию из под винды на Linux и macOS. оно то работало, то ломалось с выходом нового Lazarus или FPC. в теории такое сделать можно, а на практике... как повезет.

еще можно попробовать CodeTyphon - это, как я понимаю, порт Lazarus, но, по-моему, он больше заточен под кросс-компиляцию.
...
Рейтинг: 0 / 0
14.09.2021, 15:13
    #40097577
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
b0rk
еще можно попробовать CodeTyphon

Это помойка солянка, которая бывает несовместима между своими версиями.
Если и пользовать её серьезно, то не стоит обновлять, а если обновлять, то осторожно и отдельно от рабочей версии на случай легкого отката.
amsdev
FpcUpDeluxe

Более стабильный вариант.
...
Рейтинг: 0 / 0
15.09.2021, 01:22
    #40097701
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
san7667,

все можно. Про fpcupdeluxe уже сказали. Там можно к готовой сборке фпц/лазарус прицепить кросскомпилятор под нужную ОСь(виджетсет) /разрядность.
Но для кросскомпиляции этого мало. Надо в настройках проекта добавить разные режимы сборки. А вот после этого можно билдить готовые файлы(хоть по очереди, хоть все разом).

Если нужны подробности - спрашивай
...
Рейтинг: 0 / 0
15.09.2021, 07:21
    #40097709
san7667
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Поставил fpcupdeluxe по инструкции - http://leybabronstain.ucoz.com/blog/ispolzovanie_krosskompiljacii_v_lazarus/2018-03-03-2

Но теперь компилит только под линукс , а на exе файл ругается типа невозможно запустить на windows
Получается что под линукс все норм проходит , а под виндой теперь нифига, в чем может быть ошибка?
...
Рейтинг: 0 / 0
15.09.2021, 07:32
    #40097710
san7667
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Док, Поставил fpcupdeluxe по инструкции - http://leybabronstain.ucoz.com/blog/ispolzovanie_krosskompiljacii_v_lazarus/2018-03-03-2

Но теперь компилит только под линукс , а на exе файл ругается типа невозможно запустить на windows
Получается что под линукс все норм проходит , а под виндой теперь нифига, в чем может быть ошибка?
...
Рейтинг: 0 / 0
15.09.2021, 09:30
    #40097719
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Док
Если нужны подробности - спрашивай

а ты как собираешь? Я не парил голову и ставил Lazarus на все четыре ОСи, только смотрел чтобы версии совпадали
...
Рейтинг: 0 / 0
15.09.2021, 09:46
    #40097726
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Я билдю своим скриптом, потом просто в проекте добавляешь профили под target cpu/os и вперед. Единственное, надо бинарные утилы скачать под каждое сочетание
...
Рейтинг: 0 / 0
15.09.2021, 10:49
    #40097736
san7667
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Gallemar,
У меня win10 x64
Скачиваю fpcupdeluxe-i386-win32 , так как fpcupdeluxe-win64 у меня не работает потом exe фалй на винде

Сначала ставил Linux-i386 все работало, и под винду exe формировался и бинарник под линукс
Но в итоге бинарник не заработал на AstraLinux так как там архитектура x86_64

В итоге скачал под CPU x86_64 + OS Linux

В итоге линукс компилится, а exe нет пишет: СКРИН

Исполняемый файл компилятора : C:\Archive\development\fpcup\fpc\bin\i386-win32\ppcrossx64.exe

На 32 бит все норм, с 64 траблы, возможно из за fpcupdeluxe-i386-win32 что поставил, но хотелось бы на x32 , так как много машин такие еще осталось
...
Рейтинг: 0 / 0
15.09.2021, 10:52
    #40097737
san7667
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Fr0sT-Brutal,
Я так и делаю, профиль под определенную ОС, но не работает что то одно в итоге
...
Рейтинг: 0 / 0
15.09.2021, 15:11
    #40097820
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
san7667
Fr0sT-Brutal,
Я так и делаю, профиль под определенную ОС, но не работает что то одно в итоге

FPC надо сбилдить под каждую целевую платформу. Лазарус это сам не делает
...
Рейтинг: 0 / 0
15.09.2021, 19:07
    #40097877
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
san7667
Док, Поставил fpcupdeluxe по инструкции - http://leybabronstain.ucoz.com/blog/ispolzovanie_krosskompiljacii_v_lazarus/2018-03-03-2

Но теперь компилит только под линукс , а на exе файл ругается типа невозможно запустить на windows
Получается что под линукс все норм проходит , а под виндой теперь нифига, в чем может быть ошибка?

Инструкция слегка устарела с учётом того, что писалась 3 года назад ;)

С работы приеду, выложу отдельным топегом
...
Рейтинг: 0 / 0
16.09.2021, 00:10
    #40097912
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Как сделать кросскомпиляцию в Лазарусе при помощи fpcupdeluxe (осторожно, много комиксов и букф)


Будем считать, что компилятор и лазарь уже установлены при помощи именно fpcupdeluxe и в поле "set install path" указана папка с установленными фпц/лазарем

Переходим на вкладку "cross"



Выбираем разрядность процессора и ОСь.

Обратите внимание : можно собирать кросскомпилятор под процессор другой разрядности на текущей платформе. Главное помнить, какой разрядности у вас запущен fpcupdeluxe (указанная на скрине софтинка собирает под винду 64-битный фпц, значит "кроссплатформой" под винду будет сборка компилятора x32/i386 и т.д.)

Кросскомпиляция под Windows .

Выбираем соответственно "i386/Windows" и жмем "Install compiler". После немного странных предупреждений





компилятор x32 ставится без дополнительных телодвижений.





Примечание: как сделать режим сборки исполняемого файла под x32, смотри в следующем посте.


Кросскомпиляция под Linux .

Поскольку сборки кросскомпилятора под i386 и amd64 идентичны, опишу процесс для последнего из перечисленных.

Выбираем опции CPU=x86_64 и OS=linux, жмем "Install compiler". Получаем два странных уведомления





и ждем, пока софтинка не сообщит нам, что у него нет в данный момент инструмента для сборки кросскомпилятора и не предложит их нам немедленно скачать



Соглашаемся, наблюдая процесс их загрузки и распаковки



и терпеливо дожидаемся окончания сборки




Примечание: как сделать режим сборки исполняемого файла под i386/amd64, смотри в следующем посте.


Кросскомпиляция под MacOS(Darwin) .

Поскольку для тестов своих проектов под макось я использую ее хакинтошные сборки в виртуалке, которые задействуют процессор x86_64, то здесь опишу процесс сборки кросскомпилятора этой архитектуры.

Выбираем CPU=x86_64 и OS=Darwin, жмем "Install compiler". Соглашаемся с уже привычными нам уведомлениями





и ждем, пока софтина опять не предупредит нас об отсутствующем инструментарии



Соглашаемся, наблюдая процесс загрузки и распаковки инструментария



Терпеливо наблюдаем за окончанием процесса




Примечание: как сделать режим сборки исполняемого файла под x86-64, смотри в следующем посте.

Tags:
#Lazarus #fpc #crosscompile
#лазарус #фпц #кросскомпиляция
...
Рейтинг: 0 / 0
16.09.2021, 01:01
    #40097914
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Как задать режимы сборки в Lazarus для кросскомпиляции

Чтобы собирать исполняемые файлы под разные платформы при помощи кросскомпилятора(ов), необходимо настроить соответствующие режимы сборок в проекте. Для этого открываем Лазарус, создаем новый проект, и открываем свойства проекта



В открывшемся дереве находим "Compiler options" и переходим к настройке режимов сборки ("Build modes"), нажав на кнопку с троеточием



По умолчанию Лазарь имеет один режим сборки ("Default"), который собирает исполняемый файл с отладочной информацией (остальные детали в данный момент несущественны).

При этом экзешник (если речь идет про винду) будет соответствовать разрядности компилятора (как мы помним из предыдущего топика, разрядность компилятора будет соответствовать разрядности fpcupdeluxe, при помощи которого его собрали).




Жмем на кнопку "Create Debug and Release modes", чтобы создать отдельно режимы отладки и релизных сборок



Теперь можно удалить режим "Default" и добавить еще пару релизных режимов под наши нужны, не забыв их соответствущим образом переименовать



Теперь закрываем окно и идем настраивать наши режимы.

Переходим в дереве настроек к пункту "Config and Target"



Последовательно выбирая в выпадающем списке "Build modes" заданные режимы сборки, задаем для каждого из них соответствующие настройки:

Debug настройки по умолчанию не трогаем! (если только точно не знаем что делаем)Release_win32 OS = win32 CPU = i386 галочку "Win32 GUI application" не снимаем!Release_win64 OS = win64 CPU = x86_64 галочку "Win32 GUI application" не снимаем!Release_linux_i386 OS = Linux CPU = i386 галочку "Win32 GUI application" не снимаем!Release_linux_amd64 OS = Linux CPU = x86_64 галочку "Win32 GUI application" не снимаем!Release_Darwin_Cocoa OS = Darwin CPU = x86_64 галочку "Win32 GUI application" снимаем обязательно! См. примечание

Примечание : поскольку в каждой ОСи для отображения контролов на форме(ах) используются различные виджетсеты, то для "своей" Макоси (в предыдущем топике я писал, что использую Darwin с виджетами Cocoa) необходимы дополнительные настройки.

Необходимо снять галочку с "Win32 GUI application"



и нажать на ссылку "Select another widgetset" (или перейти в дереве проекта к пункту "Additions and Overrides")



В выпадающем списке "SetLCLWidgetType" выбрать пункт "Value "Cocoa" и удостовериться, что напротив этого режима сборки стоит отметка



и закрыть диалоговое окно.

Но это еще не все ...


Tags:
#Lazarus #fpc #crosscompile
#лазарус #фпц #кросскомпиляция
...
Рейтинг: 0 / 0
16.09.2021, 01:27
    #40097915
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Вишенка на торте

Если начать собирать проект в разных режимах, то все исполняемые файлы будут компилиться под одним именем и в одной папке, при этом они будут практически неотличимы друг от друга. Чтобы этого избежать, я вношу еще несколько изменений в свойства проекта, используя макросы IDE.

Допустим, файл моего проекта имеет название "fbutil_wrapper.lpi". Для debug-режима я указываю для выходного файла (поле "Target file name") значение:
Код: plaintext
debug\$NameOnly($(ProjFile))-debug



а для "релизных" сборок значение:
Код: plaintext
release\$NameOnly($(ProjFile))-$(TargetCPU)-$(TargetOS)

В результате, отладочные файлы лежат в отдельной папке, релизные - в отдельной






И напоследок...

Для быстрого выбора режима сборки можно воспользоваться тулбаром или соответствующим пунктом меню



Можно собирать файлы каждый по отдельности, либо скопом



Важный момент(!) : если сборка идет под другую платформу, то нельзя собирать/компилить проект при помощи <F9> - получите ошибку о невозможности запустить исполняемый файл. Необходимо собирать/компилить исполняемый файл при помощи (если по дефолту) <Shift>+<F9>/<Ctrl>+<F9>

Надеюсь этот некраткий мануал кому-то поможет :)
...
Рейтинг: 0 / 0
16.09.2021, 10:49
    #40097957
san7667
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Док, Спасибо!
...
Рейтинг: 0 / 0
16.09.2021, 15:16
    #40098057
vanderer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Есть еще вариант лазаруса (если можно так выразиться) CodeTyphon. В нем поддержка кросс-компиляции - это одна из фишек, на которой они сами акцентируют внимание.
Штука неоднозначная, некоторыми адептами лазаруса недолюбливаемая. Надеюсь, оно тут не табу :)

P.S. Оказывается, выше уже упоминали, не заметил.
...
Рейтинг: 0 / 0
16.09.2021, 18:32
    #40098124
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
vanderer,

имхо, основная проблема CT - монструозность и невозможность вычистить его из системы в случае фэйла при установке.
...
Рейтинг: 0 / 0
16.09.2021, 21:44
    #40098158
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Док, эту б годноту на хабр завезти...
...
Рейтинг: 0 / 0
16.09.2021, 22:48
    #40098162
zedxxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
makhaon
Док, эту б годноту на хабр завезти...

Или на гитхаб, чтобы это можно было себе в загашник склонировать.
...
Рейтинг: 0 / 0
17.09.2021, 07:34
    #40098184
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
zedxxx,

думал уже как-то. Попробую в тутошний блог пихнуть
...
Рейтинг: 0 / 0
17.09.2021, 09:13
    #40098196
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Док
zedxxx,

думал уже как-то. Попробую в тутошний блог пихнуть

Лучше на хабр.
...
Рейтинг: 0 / 0
17.09.2021, 09:37
    #40098205
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus - Кроссплатформенность
Gallemar,

критикой за... замордуют. Тогда лучше на гитхаб :)
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus - Кроссплатформенность / 25 сообщений из 68, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]