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?
Какие могут быть подводные камни?
Мои советы такие: Stable 64 бит с кроссплатформенностью, настроенной через fpcupdeluxe. https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases С него и советую устанавливать, тем более кроссплатформенность потребуется почти сразу. ТАкже из 64 битной IDE будешь собирать и 32 битные. Можно установить и 32 битное IDE и там собирать 64 бита. Больше зависит от качества написанного кода в Delphi, как часто там используются различные хаки и низкоуровневые вещи, как много сторонних компонентов. Обычно, конечно код в Delpho пишется так, что как по маслу точно не пройдет. Будь готов, что от некоторх либ возможно придется отказаться и кое-что переписать.
Те что на офф сайте не качать и не ставить?
Ну если нужна кроссплатформенность, то лучше изначально заюзать этот инсталлятор. Он просто все правильно настроит. Помогает устанавливать несколько версий в систему. С ним удобно устанавливать Lazarus и в другие ОС и если тебе это потребуется, то уже будет знакомый интерфейс.. Он собственно эти версии и будет устанавливать только дополнительно поможет настроить сразу кроссплатформенность. Те что на сайте они на автомате не включают кроссплатформенность. Хотя она может тебе и не нужна? Многие тут кодеры на каждую целевую ОСь ставят Lazarus и собирают на каждой целевой. Варианты могут быть разными. Я собираю все на одной ОСи
Тут некоторые не любят fpcupdeluxe и выступают за ручную настройку всего и вся. Я же покаываю как проще: заюзай fpcupdeluxe )
Ну так как у меня опыта НОЛЬ, то я думал под каждой осью ставить Лазарус и тестировать соответственно. Ну не под одной осью все версии билдить. Я просто не опытный в этом плане и мне надо что-то у чего порог входа пониже. А компы со всеми осями целевыми есть. К тому же программа у меня будет не одна - это комплекс с серверной частью, агентами и Клиентской чатсью и надо чтобы все под всеми осями работало. Так что я думаю билдить все чисто под одной осью мне наверное слишком сложно будет (ну наверное я слишком глупый для этого, или просто нет пока понимания как это может быть)
В Лазарусе кросскомпиляция делается очень просто: переключаешь в настройках проекта целевую платформу и ОСь. Ну или даже вынести это в режимы компиляции. Но можно и как ты предлагаешь. Да, для начала импортируй в Lazarus и пусть это заработает в одной ОС, потом отрефакторишь, чтобы работало на всех
В общем лучше как я понимаю пока поставить дефолтный вариант под винду 64 Windows (64 Bits) Add ons? А потом как освоюсь попробовать кроссплатформенную систему?
Стикер
С MacOS лучше не связываться. Мало кто из разработчиков компонентов на нём что-то проверяет. Если проект разбит на EXE и DLL/BPL, то лучше рассмотреть возможность всё вкомпилить в EXE-файл, иначе столкнётесь с огромной грудой геммороя. Насчёт Stable-версии - у неё хорошая совместимость с Delphi 2007. И строки такие же 1-байтные, поэтому проблем почти нет. Насчёт Tokyo наверно сложнее будет. Компоненты Indy для Лазаруса имеются. Много чего есть. Но FireDac нет. Читайте статью от Константина Тимофеева (на гит-хабе) по портированию приложения в Лазарус. Перед портированием сперва максимально доработайте его в Delphi, чтобы избавиться от компонентов, которые недоступны в Лазарусе.
что значит »Add ons ты похоже гдето слева качаешь
Слона едят по частям. Да, можно и дефолтны вариант с сайта. Хотя fpcupdeluxe несложный инсталлятор в целом. Можно и с ним сразу. Он будет собирать IDE и FPC из исходников и добавлять нужные бинарники для кросскомпиляции и делать конфиги правильные
Не там реально так на сайте написано. Сейчас проверил ) Давно не качал дистриба с офф. сайта )
Попробуйте кстати код-тайфун использовать, возможно в нём конвертер приложений работоспособный. В Лазарусе конвертер абсолютно беспомощный, даже пробовать смысла нет, только время тратить.
А я бы не рекомендовал ТАйфун. Не нужно приучать к нему с нуля. Потом отучаться придется
Я не то чтобы рекомендую (сам не пользуют). Но попробовать можно. Вдруг там всё автоматом делается :)
Там еще потом либы нужно будет все конвертить, чтобы они в ТАйфуне работали. Есть у них конечно конвертор, но уже эта дополнительная конверсия вызывает сомнения большие
Простите за тупой вопрос, но я не понимаю - тут надо все качать?
Ну у меня три ноута. Два на х86 с парой ссд (и ОС) каждый и ну и Мак на М1
почему не виртуальные машины (кроме мака)?
Ну 32 правда действительно нет. Вы правы - не со всеми осями. Просто на одном ноуте 11 на другом 10 винда (столкнулся с тем что в 11 некоторые вещи не так работают как в 10)
Ну просто они уже есть , но виртуалки тоже по необходимости юзаю
Обсуждают сегодня