내 gtkmm 프로그램은 어떤 윈도우도 표시하지 않습니다. 컴파일이 잘 작동합니다. 다음은 실행할 때 내가 얻는 메시지입니다 :glade 파일의 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
코드는 다음과 같습니다 basic.glade가 유효한 파일 또는 존재하지 않는 경우
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 대신 전체 경로 파일을 시도했다.
디버깅 할 때 프로그램이 해당 빌더 첫 번째 줄에서 벗어나지 않는다는 것을 알고 있습니다. 그것은 계속 실행되는 것처럼 보이므로 유일한 프로세스를 일시 중지하면 g_once_init_enter_impl()
또는 g_slist_find()
(이전에 호출 됨)에 있습니다. (그것은 결코 pMyWindow->show()
라인에 도달하지 않기 때문에) 그래서 지금
빠른 질문, 메인 (메인 메모리에서 윈도우를 완전히 파괴해야합니까? – Matthew