Recent

Author Topic: QT-Лазарус: установка  (Read 4236 times)

zoltanleo

  • Sr. Member
  • ****
  • Posts: 489
QT-Лазарус: установка
« on: December 17, 2022, 09:07:59 pm »
Описал свой опыт установки Qt-lazarus на винде и линуксе. Может, кому-то будет интересно

https://github.com/zoltanleo/fpc_lazarus_notes#installing_qt_lazarus
« Last Edit: December 17, 2022, 09:10:14 pm 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 ;)

AlexTP

  • Hero Member
  • *****
  • Posts: 2435
    • UVviewsoft
Re: QT-Лазарус: установка
« Reply #1 on: December 17, 2022, 11:18:01 pm »
В Гитхабе в виде markdown? Можно конечно. Но не лучше ли в вики? в виде статьи.

zoltanleo

  • Sr. Member
  • ****
  • Posts: 489
Re: QT-Лазарус: установка
« Reply #2 on: December 18, 2022, 05:32:00 am »
Рановато. Это только заметки. На полноценную статью не тянет  :)
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 ;)

zoltanleo

  • Sr. Member
  • ****
  • Posts: 489
Re: QT-Лазарус: установка
« Reply #3 on: December 19, 2022, 09:24:24 pm »
Кстати, есть уже оказывается :)

https://wiki.freepascal.org/Qt5_Interface/ru
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 ;)

tetrastes

  • Sr. Member
  • ****
  • Posts: 496
Re: QT-Лазарус: установка
« Reply #4 on: December 19, 2022, 10:18:31 pm »
Насчет "немного странных предупреждений" от fpcupdeluxe. Вообще-то лучше им следовать и не кросс-компилировать с win64, см. например https://forum.lazarus.freepascal.org/index.php/topic,59889.msg447738.html#msg447738.
Да и зачем кросс-компилировать с win64 на win32, если можно использовать родной ppc386.exe, что, кстати, и делается в официальном дистрибутиве Лазаруса.

zoltanleo

  • Sr. Member
  • ****
  • Posts: 489
Re: QT-Лазарус: установка
« Reply #5 on: December 20, 2022, 07:47:51 am »
Насчет "немного странных предупреждений" от fpcupdeluxe. Вообще-то лучше им следовать и не кросс-компилировать с win64, см. например https://forum.lazarus.freepascal.org/index.php/topic,59889.msg447738.html#msg447738.
Да и зачем кросс-компилировать с win64 на win32, если можно использовать родной ppc386.exe, что, кстати, и делается в официальном дистрибутиве Лазаруса.

Вообще-то, в этом топике речь идёт про qt.

Но, раз уж зашла речь про кросскомпиляцию, то:
1. В статье просто описывается процесс, а уж зачем все это делать - каждый решает сам. Например, я собираю сразу под вин 32/64, линукс 32/64, Дарвин. И мне проще сделать это простым переключением опций в среде (неважно, какой битности она собирает проект по умолчанию)
2. Касаемо готового ppc386.exe - думаю, большинству не очень захочется заморачиваться, где его достать и как настроить, чтобы получить 32-битный компилятор с настроенным окружением.

Как-то так...
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 ;)

tetrastes

  • Sr. Member
  • ****
  • Posts: 496
Re: QT-Лазарус: установка
« Reply #6 on: December 20, 2022, 09:53:35 am »
Вообще-то, в этом топике речь идёт про qt.
Ну просто я дочитал Вашу ссылку до конца...

Но, раз уж зашла речь про кросскомпиляцию, то:
1. В статье просто описывается процесс, а уж зачем все это делать - каждый решает сам. Например, я собираю сразу под вин 32/64, линукс 32/64, Дарвин. И мне проще сделать это простым переключением опций в среде (неважно, какой битности она собирает проект по умолчанию)

В том-то и дело, что важно (точнее важно, какой битности кросс-компиляторы). 64-битные кросс-компиляторы с win64 могут сгенерировать бинарник не такой, скажем так, как ожидалось, а может и вообще с ошибками. Может, Вы и готовы рискнуть, но других надо хотя бы предупредить, что и делает fpcupdeluxe.
Поэтому я и написал свой пост, хоть это и оффтопик, согласен.
« Last Edit: December 20, 2022, 10:02:05 am by tetrastes »

zoltanleo

  • Sr. Member
  • ****
  • Posts: 489
Re: QT-Лазарус: установка
« Reply #7 on: December 20, 2022, 07:26:20 pm »
Если я правильно вас понял и кто-то собирает 64-битный кросскомпилятор в нативном 64-битном компиляторе, а потом получает какие-то ошибки, то что тут сказать?  :o

Возникает вопрос: зачем? Если по умолчанию в опциях проекта выставлены по дефолту ЦПУ и таргет, то собираемое приложение будет соответствовать разрядности/ОСи. Зачем его дублировать, чтобы потом получать ошибки? В чем цимес?
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 ;)

tetrastes

  • Sr. Member
  • ****
  • Posts: 496
Re: QT-Лазарус: установка
« Reply #8 on: December 20, 2022, 08:38:44 pm »
Нет, Вы меня не правильно поняли.
Вы используете fpcupdeluxe для x86_64-win64 для установки кросс-компиляторов. Сначала fpcupdeluxe компилирует 64-битные fpc.exe и ppcx64.exe, потом 64-битные кросс-компиляторы (ppcross386.exe для i386, ppcross-что-то-там для linux и darwin x86_64). Так вот эти кросс-компиляторы и будут давать бинарники, отличающиеся от бинарников, полученных нативными компиляторами, потому что эти платформы поддерживают extended (80-bit floating point), a x86_64-win64 - нет. В лучшем случае при исполнении Вы будете иметь не то, что ожидали, в худшем - ошибки.

Раз уж мы сбились на оффтопик, приведу простейший пример:
Code: Pascal  [Select][+][-]
  1. program project1;
  2.  
  3. begin
  4.   writeln('SizeOf(3.1) = ', SizeOf(3.1));   // 3.1 хранится как extended на платформах,
  5.                                             // поддерживающих extended. Проверим это
  6.   writeln(3.1);
  7.   writeln(double(3.1));         // Для сравнения точности
  8.   readln;
  9. end.
  10.  
Заметьте, я нигде не использую extended явно.

Результат компиляции 32-битным ppc386.exe:
 SizeOf(3.1) = 10
  3.09999999999999999991E+0000
  3.1000000000000001E+000 

Результат компиляции 64-битным ppcross386.exe: 
SizeOf(3.1) = 10
 3.10000000000000008882E+0000
 3.1000000000000001E+000

Хоть хранится как extended, но точность фактически double.
Вот Вам результат, который не ожидали (а может и ошибка, в зависимости от требований к программе).
В заключение замечу, что многие функции из RTL используют extended.                                                                                       
« Last Edit: December 20, 2022, 08:48:27 pm by tetrastes »

zoltanleo

  • Sr. Member
  • ****
  • Posts: 489
Re: QT-Лазарус: установка
« Reply #9 on: December 20, 2022, 09:29:36 pm »
Ага, теперь ясно. Спасибо за разъяснения  :)
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 ;)

Patro de Nordo

  • New Member
  • *
  • Posts: 18
Re: QT-Лазарус: установка
« Reply #10 on: January 21, 2024, 07:33:39 am »
А в чем профит использования Qt по сравнению с предлагаемым по умолчанию интерфейсом в лазарусе? Особенно под виндой.

 

TinyPortal © 2005-2018