169 похожих чатов

Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под

Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и MacOS) и я решил что пора его переделать под Lazarus, чтобы позже уже адаптировать под другие операционные системы кроме винды.
На данный момент в приложении используется FireDac для работы с простой таблицей и модуль System.Zip для работы с архивами, а так же модули для работы с сетью IdFTPCommon, IdFTP, IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdBaseComponent, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL,
IdHTTP,
Подскажите какую версию Lazarus мне лучше устанавливать из тех что предложены на официальном сайте:
Windows (32 and 64 Bits) Direct download
Windows (32 Bits) Add ons
Windows (64 Bits)
Windows (64 Bits) Add ons
Мне желательно достигнуть максимальной совместимости с кодом который я уже написал.
Если я правильно понимаю, то мне лучше смотреть на версии Add ons.
И наверное на 64 Bits (хотя мне хотелось бы чтобы программа работала и на 32 битных версиях Винды, но подозреваю что что-то из того что уже написано может не заработать на 32 битной версии Лазаря, а хотелось бы решать проблемы с переносом на Лазарь поэтапно, и получить работающую программу как можно раньше, а потом когда уже немного освоюсь решать проблемы с 32 битами которые как я предполагаю имеются).
Возможно вопросы супер-тупые, но я пока не имел опыта работы ни с Lazarus ни с другими ОС кроме Винды.
Так какую версию лучше ставить в описанной мной ситуации? Windows (64 Bits) Add ons?
Какие могут быть подводные камни?

24 ответов

107 просмотров

Мои советы такие: Stable 64 бит с кроссплатформенностью, настроенной через fpcupdeluxe. https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases С него и советую устанавливать, тем более кроссплатформенность потребуется почти сразу. ТАкже из 64 битной IDE будешь собирать и 32 битные. Можно установить и 32 битное IDE и там собирать 64 бита. Больше зависит от качества написанного кода в Delphi, как часто там используются различные хаки и низкоуровневые вещи, как много сторонних компонентов. Обычно, конечно код в Delpho пишется так, что как по маслу точно не пройдет. Будь готов, что от некоторх либ возможно придется отказаться и кое-что переписать.

Дмитрий-Завгородний Автор вопроса
Renat Suleymanov
Мои советы такие: Stable 64 бит с кроссплатформенн...

Те что на офф сайте не качать и не ставить?

Дмитрий Завгородний
Те что на офф сайте не качать и не ставить?

Ну если нужна кроссплатформенность, то лучше изначально заюзать этот инсталлятор. Он просто все правильно настроит. Помогает устанавливать несколько версий в систему. С ним удобно устанавливать Lazarus и в другие ОС и если тебе это потребуется, то уже будет знакомый интерфейс.. Он собственно эти версии и будет устанавливать только дополнительно поможет настроить сразу кроссплатформенность. Те что на сайте они на автомате не включают кроссплатформенность. Хотя она может тебе и не нужна? Многие тут кодеры на каждую целевую ОСь ставят Lazarus и собирают на каждой целевой. Варианты могут быть разными. Я собираю все на одной ОСи

Renat Suleymanov
Ну если нужна кроссплатформенность, то лучше изнач...

Тут некоторые не любят fpcupdeluxe и выступают за ручную настройку всего и вся. Я же покаываю как проще: заюзай fpcupdeluxe )

Дмитрий-Завгородний Автор вопроса
Renat Suleymanov
Ну если нужна кроссплатформенность, то лучше изнач...

Ну так как у меня опыта НОЛЬ, то я думал под каждой осью ставить Лазарус и тестировать соответственно. Ну не под одной осью все версии билдить. Я просто не опытный в этом плане и мне надо что-то у чего порог входа пониже. А компы со всеми осями целевыми есть. К тому же программа у меня будет не одна - это комплекс с серверной частью, агентами и Клиентской чатсью и надо чтобы все под всеми осями работало. Так что я думаю билдить все чисто под одной осью мне наверное слишком сложно будет (ну наверное я слишком глупый для этого, или просто нет пока понимания как это может быть)

Дмитрий Завгородний
Ну так как у меня опыта НОЛЬ, то я думал под каждо...

В Лазарусе кросскомпиляция делается очень просто: переключаешь в настройках проекта целевую платформу и ОСь. Ну или даже вынести это в режимы компиляции. Но можно и как ты предлагаешь. Да, для начала импортируй в Lazarus и пусть это заработает в одной ОС, потом отрефакторишь, чтобы работало на всех

Дмитрий-Завгородний Автор вопроса
Renat Suleymanov
В Лазарусе кросскомпиляция делается очень просто: ...

В общем лучше как я понимаю пока поставить дефолтный вариант под винду 64 Windows (64 Bits) Add ons? А потом как освоюсь попробовать кроссплатформенную систему?

Стикер

С MacOS лучше не связываться. Мало кто из разработчиков компонентов на нём что-то проверяет. Если проект разбит на EXE и DLL/BPL, то лучше рассмотреть возможность всё вкомпилить в EXE-файл, иначе столкнётесь с огромной грудой геммороя. Насчёт Stable-версии - у неё хорошая совместимость с Delphi 2007. И строки такие же 1-байтные, поэтому проблем почти нет. Насчёт Tokyo наверно сложнее будет. Компоненты Indy для Лазаруса имеются. Много чего есть. Но FireDac нет. Читайте статью от Константина Тимофеева (на гит-хабе) по портированию приложения в Лазарус. Перед портированием сперва максимально доработайте его в Delphi, чтобы избавиться от компонентов, которые недоступны в Лазарусе.

Дмитрий Завгородний
В общем лучше как я понимаю пока поставить дефолтн...

Слона едят по частям. Да, можно и дефолтны вариант с сайта. Хотя fpcupdeluxe несложный инсталлятор в целом. Можно и с ним сразу. Он будет собирать IDE и FPC из исходников и добавлять нужные бинарники для кросскомпиляции и делать конфиги правильные

zamtmn
что значит »Add ons ты похоже гдето слева качаешь

Не там реально так на сайте написано. Сейчас проверил ) Давно не качал дистриба с офф. сайта )

Попробуйте кстати код-тайфун использовать, возможно в нём конвертер приложений работоспособный. В Лазарусе конвертер абсолютно беспомощный, даже пробовать смысла нет, только время тратить.

Дмитрий Логинов
Попробуйте кстати код-тайфун использовать, возможн...

А я бы не рекомендовал ТАйфун. Не нужно приучать к нему с нуля. Потом отучаться придется

Renat Suleymanov
А я бы не рекомендовал ТАйфун. Не нужно приучать к...

Я не то чтобы рекомендую (сам не пользуют). Но попробовать можно. Вдруг там всё автоматом делается :)

Дмитрий Логинов
Я не то чтобы рекомендую (сам не пользуют). Но поп...

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

Дмитрий-Завгородний Автор вопроса
Renat Suleymanov
Слона едят по частям. Да, можно и дефолтны вариант...

Простите за тупой вопрос, но я не понимаю - тут надо все качать?

Дмитрий-Завгородний Автор вопроса

Ну у меня три ноута. Два на х86 с парой ссд (и ОС) каждый и ну и Мак на М1

Дмитрий-Завгородний Автор вопроса

Ну 32 правда действительно нет. Вы правы - не со всеми осями. Просто на одном ноуте 11 на другом 10 винда (столкнулся с тем что в 11 некоторые вещи не так работают как в 10)

Дмитрий-Завгородний Автор вопроса
🥓 Хамон Эврибади
почему не виртуальные машины (кроме мака)?

Ну просто они уже есть , но виртуалки тоже по необходимости юзаю

Похожие вопросы

Обсуждают сегодня

Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
лучше скажите, причём тут паскаль?
Alexey Kulakov
32
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
#include <stdio.h> #include <stdlib.h> #include <time.h> int** generate_table(int size_matrix) { int** matrix = (int**)malloc(size_matrix * sizeof(int*)); for (int i ...
Чувак
1
@PerlBanjoBot use v5.38; sub split_on_cond($arr, $cond) { ($a, $b) = ([], []); push @{ $cond->($_) ? $a : $b }, $_ for @$arr; ($a, $b) } use Data::Dumper; warn Dumpe...
Sergei Zhmylove
10
Всем привет! как узнать, что текст в TSkLabel был выведен сокращенным ? Есть функция для TLabel которая позволяет определить , что текст выведен сокращенным function TFrmMai...
DELPHI SOLUTIONS
6
Вот объясните, как это работает: Вот есть допустим unix-подобная система, и программа запускает допустим printf или fork, как это передается ядру, и как оно обрабатывать начин...
Егор
14
Дебил? Я ищу друга
Bitard 228
27
У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Карта сайта