Портирование проекта Windows -> Linux

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Портирование проекта Windows -> Linux

Сообщение Potatoo » 21.08.2018 17:33:41

Доброго времени суток всем!
Прошу помочь/подсказать куда копать в моей проблемке)
Итак что имеется:
1) Был портирован рабочий проект из под Windows/Delphi7 на Windows/Lazarus, тут вопросов не было.... при правке синтаксиса и вызовов, проект запустился.
2) Далее портирование проходило из под Windows/Lazarus на Linux(Mint)/Lazarus, тут и появилась проблема. Проект компилируется, собирается, при попытке старта происходит непонятная вещь, сразу выдаётся окно "Execution stopped"при этом никаких ошибок не выдаёт.
Может кто сталкивался с подобной проблемой, буду признателен за помощь!
Проект приложения - оконный.
Аватара пользователя
Potatoo
незнакомец
 
Сообщения: 4
Зарегистрирован: 21.08.2018 15:15:16
Откуда: Подольск

Re: Портирование проекта Windows -> Linux

Сообщение Снег Север » 21.08.2018 23:23:01

Мой хрустальный шар подсказывает, что нужно запускать программу в линуксе под лазарем и в дебагере пошагово проверять всё, что делается в oncreate и onshow форм.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: Портирование проекта Windows -> Linux

Сообщение Potatoo » 22.08.2018 11:33:45

При установке брекпоинта на "Application.Initialize" отладчик даже туда не попадает:
Код: Выделить всё
begin
  Application.Initialize;
  Application.Title:='Text_Name';
  Application.CreateForm(TfmMain, fmMain);
  Application.CreateForm(TfmErr, fmErr);
  Application.Run;
end.
Аватара пользователя
Potatoo
незнакомец
 
Сообщения: 4
Зарегистрирован: 21.08.2018 15:15:16
Откуда: Подольск

Re: Портирование проекта Windows -> Linux

Сообщение Снег Север » 22.08.2018 11:41:18

В каких-либо юнитах есть секции инициализации? Как они выполняются?
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: Портирование проекта Windows -> Linux

Сообщение serbod » 22.08.2018 14:06:03

В начале исходника проекта есть волшебные строки?
Код: Выделить всё
uses
{$ifdef unix}
  cthreads,
{$endif}
Аватара пользователя
serbod
постоялец
 
Сообщения: 449
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: Портирование проекта Windows -> Linux

Сообщение Potatoo » 22.08.2018 14:47:44

Снег Север, при инициализации модуля "Interfaces" валится:
Код: Выделить всё
initialization
  CreateWidgetset(TGtk2WidgetSet);


Добавлено спустя 2 минуты 24 секунды:
serbod, внимательно глянул - таких строк нету(
Аватара пользователя
Potatoo
незнакомец
 
Сообщения: 4
Зарегистрирован: 21.08.2018 15:15:16
Откуда: Подольск

Re: Портирование проекта Windows -> Linux

Сообщение Снег Север » 22.08.2018 16:43:22

Potatoo, я эти виджеты не использовал, попробуйте сделать минимальный тестовый работающий проект с ними и сравните со своим, наверняка что-то не прописалось
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: Портирование проекта Windows -> Linux

Сообщение Alex2013 » 22.08.2018 17:29:09

Вот что у меня было:
viewtopic.php?f=5&t=10482
(Глянь может проблема та же самая...) :idea:
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Портирование проекта Windows -> Linux

Сообщение pupsik » 22.08.2018 20:00:21

Potatoo
Более адекватно можно ответить посмотрев на порт.

А так: открываете каждый модуль, проверяйте валидность открытия форм и самого кода.
Директивы и т.д. уже упоминали.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Портирование проекта Windows -> Linux

Сообщение Potatoo » 23.08.2018 14:37:11

Снег СеверserbodAlex2013pupsik Благодарю ВСЕХ за помощь :) помогли с решением проблемы!
Как советовалось в статье "Модули, необходимые для мультипоточных приложений" http://wiki.freepascal.org/Multithreaded_Application_Tutorial/ru
В начале "основной_модуль*.lpr" сразу после uses нужно было прописать:
Код: Выделить всё
uses
{$ifdef unix}
  cthreads,
  cmem, // the c memory manager is on some systems much faster for multi-threading
{$endif}

после этого, проект стартанул
:wink:
Аватара пользователя
Potatoo
незнакомец
 
Сообщения: 4
Зарегистрирован: 21.08.2018 15:15:16
Откуда: Подольск


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22

Рейтинг@Mail.ru