Портирование проекта Windows -> Linux
Модератор: Модераторы
Портирование проекта Windows -> Linux
Доброго времени суток всем!
Прошу помочь/подсказать куда копать в моей проблемке)
Итак что имеется:
1) Был портирован рабочий проект из под Windows/Delphi7 на Windows/Lazarus, тут вопросов не было.... при правке синтаксиса и вызовов, проект запустился.
2) Далее портирование проходило из под Windows/Lazarus на Linux(Mint)/Lazarus, тут и появилась проблема. Проект компилируется, собирается, при попытке старта происходит непонятная вещь, сразу выдаётся окно "Execution stopped"при этом никаких ошибок не выдаёт.
Может кто сталкивался с подобной проблемой, буду признателен за помощь!
Проект приложения - оконный.
Прошу помочь/подсказать куда копать в моей проблемке)
Итак что имеется:
1) Был портирован рабочий проект из под Windows/Delphi7 на Windows/Lazarus, тут вопросов не было.... при правке синтаксиса и вызовов, проект запустился.
2) Далее портирование проходило из под Windows/Lazarus на Linux(Mint)/Lazarus, тут и появилась проблема. Проект компилируется, собирается, при попытке старта происходит непонятная вещь, сразу выдаётся окно "Execution stopped"при этом никаких ошибок не выдаёт.
Может кто сталкивался с подобной проблемой, буду признателен за помощь!
Проект приложения - оконный.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Мой хрустальный шар подсказывает, что нужно запускать программу в линуксе под лазарем и в дебагере пошагово проверять всё, что делается в oncreate и onshow форм.
При установке брекпоинта на "Application.Initialize" отладчик даже туда не попадает:
Код: Выделить всё
begin
Application.Initialize;
Application.Title:='Text_Name';
Application.CreateForm(TfmMain, fmMain);
Application.CreateForm(TfmErr, fmErr);
Application.Run;
end.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
В каких-либо юнитах есть секции инициализации? Как они выполняются?
- serbod
- постоялец
- Сообщения: 449
- Зарегистрирован: 16.09.2016 10:03:02
- Откуда: Минск
- Контактная информация:
В начале исходника проекта есть волшебные строки?
Код: Выделить всё
uses
{$ifdef unix}
cthreads,
{$endif}
Снег Север, при инициализации модуля "Interfaces" валится:
Добавлено спустя 2 минуты 24 секунды:
serbod, внимательно глянул - таких строк нету(
Код: Выделить всё
initialization
CreateWidgetset(TGtk2WidgetSet);Добавлено спустя 2 минуты 24 секунды:
serbod, внимательно глянул - таких строк нету(
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Potatoo, я эти виджеты не использовал, попробуйте сделать минимальный тестовый работающий проект с ними и сравните со своим, наверняка что-то не прописалось
Potatoo
Более адекватно можно ответить посмотрев на порт.
А так: открываете каждый модуль, проверяйте валидность открытия форм и самого кода.
Директивы и т.д. уже упоминали.
Более адекватно можно ответить посмотрев на порт.
А так: открываете каждый модуль, проверяйте валидность открытия форм и самого кода.
Директивы и т.д. уже упоминали.
Снег СеверserbodAlex2013pupsik Благодарю ВСЕХ за помощь
помогли с решением проблемы!
Как советовалось в статье "Модули, необходимые для мультипоточных приложений" http://wiki.freepascal.org/Multithreaded_Application_Tutorial/ru
В начале "основной_модуль*.lpr" сразу после uses нужно было прописать:
после этого, проект стартанул

Как советовалось в статье "Модули, необходимые для мультипоточных приложений" 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}после этого, проект стартанул
