Gtk-Critical **: gtk_widget_show assertion GTK_IS_WIDGET(WIDGET) Gtk-Critical **: gtk_widget_show assertion GTK_IS_WIDGET(WIDGET) windows windows

Gtk-Critical **: gtk_widget_show assertion GTK_IS_WIDGET(WIDGET)


The problem is that there is no object whose id is app in your glade file. If you want to display the window, you have to pass the id associated with the window i.e. window1. Thus you code can be changed to:

app = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); if (NULL == app){    /* Print out the error. You can use GLib's message logging  */    fprintf(stderr, "Unable to file object with id \"window1\" \n");    /* Your error handling code goes here */}

There are few other suggestions:
1. It is better to use GError ** parameter in gtk_builder_add_from_file call. So instead of just gtk_builder_add_from_file use the following piece of code for your reference:

GError *err = NULL; /* It is mandatory to initialize to NULL */...if(0 == gtk_builder_add_from_file (builder, "tut.glade", &err)){    /* Print out the error. You can use GLib's message logging */    fprintf(stderr, "Error adding build from file. Error: %s\n", err->message);    /* Your error handling code goes here */}...

2. From your glade file, the root element glade-interface indicates that you are using libglade format for saving you glade file instead of GtkBuilder format. Thus you may need to link libglade in the build. But from the glade file you are indicating that Gtk version is 2.16 or above, you may need to use GtkBuilder format. In that case you will need to convert to GtkBuilder format which can be done using gtk-builder-convert script or opening the glade file in Glade application & saving in the GtkBuilder format (This option will depend on your Glade version).
Hope this helps!