Recent

Author Topic: Помощь с кросс-компиляцией  (Read 4484 times)

zuzabrik

  • Newbie
  • Posts: 2
Помощь с кросс-компиляцией
« 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... Но где их взять я так и не понял. А может и не в этом дело.

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: Помощь с кросс-компиляцией
« Reply #1 on: February 24, 2020, 02:44:57 pm »
Самый простой способ с помощью FpcUpDeluxe:
https://wiki.freepascal.org/fpcupdeluxe
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2770
    • havefunsoft.com
Re: Помощь с кросс-компиляцией
« Reply #2 on: February 24, 2020, 02:49:45 pm »
Сложный способ описан здесь:
https://wiki.freepascal.org/Cross_compiling_for_Win32_under_Linux/ru

BSaidus

  • Hero Member
  • *****
  • Posts: 541
  • lazarus 1.8.4 Win8.1 / cross FreeBSD
Re: Помощь с кросс-компиляцией
« Reply #3 on: February 24, 2020, 03:10:12 pm »
Самый простой способ с помощью FpcUpDeluxe:
https://wiki.freepascal.org/fpcupdeluxe

 :)  YEP !
lazarus 1.8.4 Win8.1 / cross FreeBSD
dhukmucmur vernadh!

mig-31

  • Sr. Member
  • ****
  • Posts: 305
Re: Помощь с кросс-компиляцией
« Reply #4 on: February 24, 2020, 04:42:26 pm »
Привет.
Я кросс-компиляцией из Linux под Windows не пользуюсь. Пользуюсь лозунгом Lazarus "Write once compile anywhere". Может вам подойдет этот способ. Тут об этом можно почитать https://wiki.freepascal.org/Multiplatform_Programming_Guide

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

Решать вам как проще.
Lazarus 2.2.6 - OpenSuse Leap 15.4, Mageia 8, CentOS 7

zuzabrik

  • Newbie
  • Posts: 2
Re: Помощь с кросс-компиляцией
« Reply #5 on: February 24, 2020, 07:12:08 pm »
Спасибо за ответы, обязательно ознакомлюсь со всеми ссылками :) Что касается последнего совета. В целом я думал об этом, но так как опыта большого в таких делах нет, боязно что придется много переписывать заново при смене платформы :) С другой стороны у меня пока нет необходимости выходить за рамки тех компонентов что дает Лазарус.

zoltanleo

  • Sr. Member
  • ****
  • Posts: 486
Re: Помощь с кросс-компиляцией
« Reply #6 on: February 24, 2020, 08:47:18 pm »
Мой опыт
http://leybabronstain.ucoz.com/blog/ispolzovanie_krosskompiljacii_v_lazarus/2018-03-03-24

зы. осторожно, куча рекламы
Win10 LTSC x64/Deb 11 amd64(gtk2/qt5)/Darwin Cocoa (Monterey):
Lazarus x32/x64 2.3(trunk); FPC 3.3.1 (trunk), FireBird 3.0.10; IBX by TonyW

Sorry for my bad English, I'm using translator ;)

Otto

  • Full Member
  • ***
  • Posts: 226
Re: Помощь с кросс-компиляцией
« Reply #7 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.
Kind regards.

zoltanleo

  • Sr. Member
  • ****
  • Posts: 486
Re: Помощь с кросс-компиляцией
« Reply #8 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  ;)
« Last Edit: February 25, 2020, 07:38:28 am by zoltanleo »
Win10 LTSC x64/Deb 11 amd64(gtk2/qt5)/Darwin Cocoa (Monterey):
Lazarus x32/x64 2.3(trunk); FPC 3.3.1 (trunk), FireBird 3.0.10; IBX by TonyW

Sorry for my bad English, I'm using translator ;)

Otto

  • Full Member
  • ***
  • Posts: 226
Re: Помощь с кросс-компиляцией
« Reply #9 on: February 25, 2020, 02:01:54 pm »
@ zoltanleo.

Спасибо.

Thank you very much.

Greetings.
Otto.
Kind regards.

sash

  • Sr. Member
  • ****
  • Posts: 366
Re: Помощь с кросс-компиляцией
« Reply #10 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
Lazarus 2.0.10 FPC 3.2.0 x86_64-linux-gtk2 @ Ubuntu 20.04 XFCE

Seenkao

  • Hero Member
  • *****
  • Posts: 546
    • New ZenGL.
Re: Помощь с кросс-компиляцией
« Reply #11 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. )))
« Last Edit: March 29, 2020, 06:47:27 pm by Seenkao »
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

Awkward

  • Full Member
  • ***
  • Posts: 134
Re: Помощь с кросс-компиляцией
« Reply #12 on: March 28, 2020, 02:54:39 pm »
Если б хотя бы в комментариях к ролику поместил сам список софта, вообще было бы круто :)

Seenkao

  • Hero Member
  • *****
  • Posts: 546
    • New ZenGL.
Re: Помощь с кросс-компиляцией
« Reply #13 on: March 28, 2020, 08:34:01 pm »
Понял, пойду добавлять.  :)
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

 

TinyPortal © 2005-2018