Моя программа gtkmm не показывает никаких окон.Компиляция работает отлично.Это сообщения, которые я получаю при запуске:
(process:2312): GLib-GObject-CRITICAL **: /build/buildd/glib2.0-2.24.1/gobject
/gtype.c:2706: You forgot to call g_type_init()
(process:2312): GLib-CRITICAL **: g_once_init_leave: assertion
`initialization_value != 0' failed
(process:2312): GLib-GObject-CRITICAL **: g_object_newv: assertion
`G_TYPE_IS_OBJECT (object_type)' failed
Код:
int main(int argc, char** argv) {
Glib::RefPtr<Gtk::Builder> builder =
Gtk::Builder::create_from_file("basic.glade");
Gtk::Window* pMyWindow = 0;
builder->get_widget("window1", pMyWindow);
pMyWindow->show();
}
Не имеет значения, является ли basic.glade допустимым файлом или не существует.Я попытался использовать весь путь к файлу вместо basic.glade.
Когда я отлаживаю его, я понимаю, что программа никогда не выходит из первой строки этого сборщика.Это похоже на то, что он продолжает работать, поэтому, когда я приостанавливаю единственный процесс, он будет либо на g_once_init_enter_impl()
, либо на g_slist_find()
(вызывается первым).Так что я никогда не вижу ни одного окна (потому что оно никогда не доходит до этой pMyWindow->show()
строки)