我开发了一个小型开源应用程序来帮助我完成博士论文。该应用程序在 Windows 上可以正常运行。当我尝试在 Linux 上运行时,一切都运行得很好,但是当我关闭应用程序时,我收到了此消息:
Project SmCube raised exception class ´External: SIGSEGV´.
我尝试运行一些示例应用程序(默认情况下与 Lazarus 一起提供),它们运行正常。
我已尝试追踪问题。在“Application.Terminate”命令之后,调试停留在该例程上:
{------------------------------------------------------------------------------
Method: TGtk2WidgetSet.AppWaitMessage
Params: None
Returns: Nothing
Passes execution control to the GTK engine till something happens
------------------------------------------------------------------------------}
procedure TGtk2WidgetSet.AppWaitMessage;
begin
WaitingForMessages:=true;
if not FGtkTerminated then
begin
{$IFDEF USE_GTK_MAIN_OLD_ITERATION}
gtk_main_iteration_do(True);
{$ELSE}
DEBUG STOPS HERE --> g_main_context_iteration(g_main_context_default, True);
{$ENDIF}
end;
WaitingForMessages:=false;
end;
请问有人可以帮我看看发生了什么吗? 最好的问候
最佳答案
我也没有看到足够的信息来给出任何有值(value)的答案。
但我建议尝试使用 qt widgetset 而不是 gtk widgetset 来编译 lazarus 应用程序,看看它是否仍然会发生。
关于linux - 将 Lazarus 应用程序从 Windows 移植到 Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33745969/