Я портирую свою программу с Delphi на Lazarus, чтобы поддерживать проект не только под Windows. Тут кажется писали, что в Lazarus менее удобная отладка, чем в Delphi XE. Поэтому возникает вопрос – стоит ли вести в дальнейшем одновременную разработку проекта на Delphi и Lazarus?
Я вижу такие варианты:
1) Портировать проект под Lazarus и забыть о Delphi, в дальнейшем всю поддержку проекта делать в Lazarus;
2) Держать одновременно два исходника – под Delphi XE и под Lazarus, и все правки делать в них одновременно. Ну как вариант.
3) Вести основную разработку в Delphi, но раз в несколько лет проводить портирование кода в Lazarus и компилировать с ним проект под Linux/Mac. С моим проектом это могло бы быть удобно.
4) Вести основную разработку проекта в Lazarus, но поддерживать также код под Delphi для отладки и нахождения багов. В отличие от второго варианта, этот предполагает что исходники на Delphi будут нужны только для одной опции – отладка, поиск ошибок. Поэтому в отличие от второго варианта не потребуется точно согласовывать два исходника, Delphi исходник может не точно соответствовать лазаровскому, но с ним можно будет искать баги, а дальше уже устранять эти баги в лазаровском исходнике.
Здравствуйте, Khimik, Вы писали:
K> Я портирую свою программу с Delphi на Lazarus, чтобы поддерживать проект не только под Windows. Тут кажется писали, что в Lazarus менее удобная отладка, чем в Delphi XE. Поэтому возникает вопрос – стоит ли вести в дальнейшем одновременную разработку проекта на Delphi и Lazarus?
K> Я вижу такие варианты: K> 1) Портировать проект под Lazarus и забыть о Delphi, в дальнейшем всю поддержку проекта делать в Lazarus;
... K> Какой вариант вы бы посоветовали?
Поддерживть одновременно и Delphi и Lazarus можно, но это очень трудоемкая задача, особенно для приложения с гуем. Поэтому вариант №1. С отладчиком там хуже, чем в Delphi (и значительно сложнее разбираться в потрохах LCL), но это дело привычки.
Здравствуйте, Khimik, Вы писали:
K>Какой вариант вы бы посоветовали?
Проект в двух средах — это сложно. Тем более, что будут расхождения. Кроме того, чтобы в Лазаре компилировать проект в любой оси, придется выкинуть модуль windows отовсюду, где он прописан в uses. Это первое и непременное условие.
Отладчик — да, это реально боль. Но привыкнуть можно. Если немного колдунства применить и не лениться писать переменные руками при отладке. Говорят, что уже есть встроенный отладчик, но я не пробовал, если честно. Мне работать надо, а не отладчики перебирать.
LN>Отладчик — да, это реально боль. Но привыкнуть можно. Если немного колдунства применить и не лениться писать переменные руками при отладке. Говорят, что уже есть встроенный отладчик, но я не пробовал, если честно. Мне работать надо, а не отладчики перебирать.
Делфийский отладчик не понимает бинарь лазаруса? Разный формат отладочной информации?
Здравствуйте, LuciferNovoros, Вы писали:
LN> F>Делфийский отладчик не понимает бинарь лазаруса? Разный формат отладочной информации?
LN> Не распарсил... А при чем тут дельфа и бинарники лазаря? Это, мягко говоря, совершенно ортогональные вещи.
При совместимости формата отладочной информации отлаживать бинари можно где угодно, об этом речь. Но у классического Delphi свой формат т.ч. мимо.
Здравствуйте, L.K., Вы писали:
K>>Какой вариант вы бы посоветовали?
LK>Самое простое и быстрое — адаптировать имеющуюся дельфовую прогу под Wine.
Спасибо за идею. Если не получится с Lazarus, попробую. Кстати тут на форуме должен быть участник, написавший программу, анализирующую процесс программы в рантайме (я уже не помню для какой цели). Я предложил ему сделать альтернативу Вайну: шароварщик присылает ему exe файл своей программы, далее человек вручную разбирает этот код и конвертирует под Linux. Т.е. если Wine — "интерпретатор", то я предлагаю "компилирование". Но он не захотел, а мог бы огромные деньги заработать...
Здравствуйте, Khimik, Вы писали:
K> Спасибо за идею. Если не получится с Lazarus, попробую.
Я посмотрел твой сайт, у тебя же есть версия для линукс и она на Lazarus (хоть и обновлялась последний раз в 2017 году). Раньше выходило, а сейчас не выходит?
K> Т.е. если Wine — "интерпретатор", то я предлагаю "компилирование".
Wine не интерпретатор. Это альтернативная реализация Win32 API.
R>Я посмотрел твой сайт, у тебя же есть версия для линукс и она на Lazarus (хоть и обновлялась последний раз в 2017 году). Раньше выходило, а сейчас не выходит?
Мне тогда портировал другой человек, а контакт с ним потерян. Честно говоря я даже исходники под Lazarus потерял. В следующий раз такого не повторю (буду сам разбираться с Лазарусом, возможно консультируясь с другими людьми).
K>> Т.е. если Wine — "интерпретатор", то я предлагаю "компилирование".
R>Wine не интерпретатор. Это альтернативная реализация Win32 API.
Ну я предлагаю что-то в таком роде — человек анализирует код программы, находит в них ссылки на win32 функции, и меняет этот код на другой. Разумеется не сам всё это делает вручную, а в написанной им специальной программе.
Здравствуйте, LuciferNovoros, Вы писали:
LN>Здравствуйте, flаt, Вы писали:
F>>Делфийский отладчик не понимает бинарь лазаруса? Разный формат отладочной информации?
LN>Не распарсил... А при чем тут дельфа и бинарники лазаря? Это, мягко говоря, совершенно ортогональные вещи.
Ну ладно, Лазарус — не компилятор, а IDE. Компилятор — это FPC. Но можно было и понять, что имеется ввиду
Кстати, что за программу-то нужно портировать? Бэкапную утилиту? Но в линухе всё это делается несложным bash-скриптом. Или программу для медитации? Но смысл медитации — отрешиться от всего, в т.ч. от всех программ.
Здравствуйте, L.K., Вы писали:
LK>Кстати, что за программу-то нужно портировать? Бэкапную утилиту? Но в линухе всё это делается несложным bash-скриптом. Или программу для медитации? Но смысл медитации — отрешиться от всего, в т.ч. от всех программ.
Здравствуйте, L.K., Вы писали:
LK>Да и на lazarus перенесётся без особых проблем.
Wine, конечно, — это замЫчательно. Но лучше обойтись таки без него. Иногда презабавнейшие глюки вылезают. Особенно, если предполагается работа с мультимедиа. Мне, например, так и не удалось заставить под ним работать SIP, который я делал. Где-то тут даже ссылка есть, я кидал. При этом под чистой виндой он работает.
Второе — это использование "древних" компонентов дельфовых, которые есть просто тяжкое наследие аж 3.1 винды. Модули придется переписывать полностью. Ну или писать аналогичные компоненты. Третье — это жестко зашитые в код пути к файлам. Ну и прямые/обратные слеши, зашитые там же.
В общем, если это чисто дельфовый проект, то свои сложности там непременно будут.
Здравствуйте, LuciferNovoros, Вы писали:
LN>Wine, конечно, — это замЫчательно. Но лучше обойтись таки без него. Иногда презабавнейшие глюки вылезают.
Вайнов дофига. Надо свой делать.
Берешь вайн, можно коммерческий, фиксишь баги, потом свою прогу со своим вайном распространяешь.
Каждый билд может по разному себя вести.
Так что лучше свой вайн сделать 1 раз и его использовать при установке своей проги и он не будет конфликтовать с уже установленным вайном и даже с совсем не установленным, можно и так сделать, но эт времени подольше займет.
Лет 10 назад делал, но потом железо подросло, виртуалбокс стал юзабельный, винда копеечная стала, загнали ее в виртуалку, а вайн в топку.
3 тысячи тогда винда стоила вроде, не помню точно, но какие то копейки, так что оем винду в виртуалке и нах этот гемор с вайном.