Значение ошибки утверждения GLib-GIO-CRITICAL

Я успешно скомпилировал следующую программу simple.cc:

#include <gtkmm.h>

int main (int argc, char *argv[])
{
  Glib::RefPtr<Gtk::Application> app = 
    Gtk::Application::create(argc, argv,
      "org.gtkmm.examples.base");

  Gtk::ApplicationWindow window;

  return app->run(window);
}

используя следующую команду:

g++ simple.cc -o simple `pkg-config gtkmm-3.0 --cflags --libs`

Это дало мне простой исполняемый файл, но когда я попытался его запустить, я получил следующую ошибку:

(simple:2964): GLib-GIO-CRITICAL **: g_application_list_actions: assertion `application->priv->is_registered' failed
Segmentation fault (core dumped)

Насколько я могу судить, у меня самые последние и лучшие пакеты GLib. Я использую Ubuntu 12.04 LTS.


person mring    schedule 25.05.2012    source источник


Ответы (2)


У меня была такая же проблема, как я только что начал на том же уроке. Заменять:

    Gtk::ApplicationWindow window;

с

    GTK::Window window;

Если вы читаете описание кода в учебнике, последний на самом деле является обсуждаемым кодом. Внесение этого изменения заставило программу работать на меня.

person mcheema    schedule 12.06.2012

Попробуйте подключить свое окно к экземпляру приложения. Создайте его следующим образом:

Gtk::ApplicationWindow window(app);
person ptomato    schedule 25.05.2012