Lazarus

Other Languages => Russian => Topic started by: zuzabrik on February 24, 2020, 02:31:11 pm

Title: Помощь с кросс-компиляцией
Post by: zuzabrik on February 24, 2020, 02:31:11 pm
Установил себе Lazarus с офсайта на Linux Mint 19.3 x64. Работает как часы, но я так и не разобрался как сделать кросс-компиляцию. Так чтобы на Linux можно было собирать как бинарники под Linux, так и под Windows.

Поспрашивав у гугла что за файл .ppu он хочет и вообще... Ни черта не разобрался  :) В конце концов установил Lazarus под wine и пишу там, но для меня это неудобно. Помогите сделать нужные шаги.

Судя по всему проблема в том что у меня в /usr/lib/fpc/3.0.4/units есть только папка /x86_64-linux. То есть нет нужных библиотек для сборки под Windows... Но где их взять я так и не понял. А может и не в этом дело.
Title: Re: Помощь с кросс-компиляцией
Post by: avra on February 24, 2020, 02:44:57 pm
Самый простой способ с помощью FpcUpDeluxe:
https://wiki.freepascal.org/fpcupdeluxe
Title: Re: Помощь с кросс-компиляцией
Post by: skalogryz on February 24, 2020, 02:49:45 pm
Сложный способ описан здесь:
https://wiki.freepascal.org/Cross_compiling_for_Win32_under_Linux/ru
Title: Re: Помощь с кросс-компиляцией
Post by: BSaidus on February 24, 2020, 03:10:12 pm
Самый простой способ с помощью FpcUpDeluxe:
https://wiki.freepascal.org/fpcupdeluxe

 :)  YEP !
Title: Re: Помощь с кросс-компиляцией
Post by: mig-31 on February 24, 2020, 04:42:26 pm
Привет.
Я кросс-компиляцией из Linux под Windows не пользуюсь. Пользуюсь лозунгом Lazarus "Write once compile anywhere". Может вам подойдет этот способ. Тут об этом можно почитать https://wiki.freepascal.org/Multiplatform_Programming_Guide (https://wiki.freepascal.org/Multiplatform_Programming_Guide)

Код пишу под Linux (CentOS7, OpenSuse 15.1 Qt4, Qt5) с учетом особенностей кроссплатфоменности. Потом открываю код под Windows и компилирую. Обычно требуется одна, две правки. Теститровать основательно работоспособность кода под Windows мне в основном не надо, потому что программа обычно работает под Linux (автоматизация, измерения, сбор данных с ПЛК и т.д.) а на Windows - это всего лишь просмотрощик данных.

Решать вам как проще.
Title: Re: Помощь с кросс-компиляцией
Post by: zuzabrik on February 24, 2020, 07:12:08 pm
Спасибо за ответы, обязательно ознакомлюсь со всеми ссылками :) Что касается последнего совета. В целом я думал об этом, но так как опыта большого в таких делах нет, боязно что придется много переписывать заново при смене платформы :) С другой стороны у меня пока нет необходимости выходить за рамки тех компонентов что дает Лазарус.
Title: Re: Помощь с кросс-компиляцией
Post by: zoltanleo on February 24, 2020, 08:47:18 pm
Мой опыт
http://leybabronstain.ucoz.com/blog/ispolzovanie_krosskompiljacii_v_lazarus/2018-03-03-24

зы. осторожно, куча рекламы
Title: Re: Помощь с кросс-компиляцией
Post by: Otto on February 24, 2020, 10:29:17 pm
Hello zoltanleo.
Congratulations, your guide is done so well that you could insert it as well as it is within the official Lazarus website. (https://wiki.lazarus.freepascal.org/fpcupdeluxe). If you decide to do so, could I try to translate it into Italian?

Sorry for the mistakes I used an automatic translator.

Greetings.
Otto.
____

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

Извините за ошибки, которые я использовал автоматический переводчик.

Приветствия.
Otto.
Title: Re: Помощь с кросс-компиляцией
Post by: zoltanleo on February 25, 2020, 04:41:51 am
Hello zoltanleo.
 If you decide to do so, could I try to translate it into Italian?
of course yes  ;)
Title: Re: Помощь с кросс-компиляцией
Post by: Otto on February 25, 2020, 02:01:54 pm
@ zoltanleo.

Спасибо.

Thank you very much.

Greetings.
Otto.
Title: Re: Помощь с кросс-компиляцией
Post by: sash on March 04, 2020, 10:58:53 am
Имею схожую с автором ситуацию: установлен 2-ой экземпляр Lazarus под wine, но в него почти никогда не захожу, а использую только lazbuild. Над проектами работаю в linux, когда надо собрать под windows - использую shell-script типа такого:

Code: Bash  [Select][+][-]
  1. #!/usr/bin/env bash
  2.  
  3. builder="c:\lazarus\lazbuild.exe"
  4. buildargs="--bm=Release"
  5. project=".\pathto\project.lpr"
  6.  
  7. wine $builder $buildargs $project
  8.  
  9. if [ $? -eq 0 ]; then
  10.         echo "OK"
  11. else
  12.         echo "Build FAILED"
  13. fi
Title: Re: Помощь с кросс-компиляцией
Post by: Seenkao on March 28, 2020, 02:34:11 pm
Мучался долго, но всё-таки удалось запустить.

https://youtu.be/4oxssDB3JJE - программы, которые нужны или которые использовал
https://youtu.be/3tB_5mA2rO0 - и само создание APK-файла.

Проблемы при создании. Не советую пользоваться FPC 3.0.4 пользуйтесь версиями выше. В 3.0.4 походу недоработки где-то и скомпилированный файл может не запустится.

Проблемы с компиляцией в лазурусе. Если не компилируется файл, выдаёт ошибку, а считаете, что сделали всё верно, удалите *.lpi файл и попробуйте заново все настройки прописать.

Ещё одна проблема, вы может забыли положить скомпилированный *.so файл в нужную папку и/или включить загрузку этого файла в пакет.

Выявилась ещё одна проблемка. Работает данный метод только на Windows, на Linux проявляются проблемы с JNI. Поэтому, если кто знает как решить их, просьба указать. Я недавно на Linux. )))
Title: Re: Помощь с кросс-компиляцией
Post by: Awkward on March 28, 2020, 02:54:39 pm
Если б хотя бы в комментариях к ролику поместил сам список софта, вообще было бы круто :)
Title: Re: Помощь с кросс-компиляцией
Post by: Seenkao on March 28, 2020, 08:34:01 pm
Понял, пойду добавлять.  :)
TinyPortal © 2005-2018