我尝试通过x11vnc在Lubuntu 16.04上运行使用GTKmm库的程序。当我在终端中启动它时,它会引发错误:

(process:6981): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed

(process:6981): GLib-GObject-CRITICAL **: g_object_get_qdata: assertion 'G_IS_OBJECT (object)' failed
Segmentation fault (core dumped)

我尝试调试代码,但是分段错误发生在main函数的第一行之前。

最佳答案

我也遇到了类似的问题。我花了两天时间才能解决它。问题出在一些未分配的指针。如果您在此处发布代码,我可能会提供更好的帮助。
但是,以下是一些可能的原因:
1.您使用了对对象的引用作为Gtk::Window类的数据成员。您可能要改用指针,并在构造函数中使用内存对其进行初始化。
2.您的函数之一应该返回一个指向对象的指针,但它没有返回它。在这种情况下,调用方可能会得到一个空指针。

10-06 04:56