Gio::File::create_for_path (...)

I wrote this example code

#include <gtkmm.h>

#define conf_file_name "data.conf"

class ConfigurationFile
{
public:

	ConfigurationFile()
	:
		conf_file (Gio::File::create_for_path (
			Glib::build_filename (Glib::get_current_dir(), conf_file_name)))
	{
	}

private:

	Glib::RefPtr<Gio::File> conf_file;
};

int main (int argc, char *argv[])
{		
	ConfigurationFile conffile;

	return 0;
}

At runtime, after compilation (with no errors), I get

** (process:9027): CRITICAL **: 22:06:24.645: Glib::ObjectBase* Glib::wrap_create_new_wrapper_for_interface(GObject*, GType): assertion 'wrap_func_table != nullptr' failed

(process:9027): GLib-GObject-CRITICAL **: 22:06:24.645: g_object_set_qdata_full: assertion 'quark > 0' failed

What I’m doing wrong ?


$ pkg-config --modversion gtkmm-4.0
4.0.1
$ pkg-config --modversion gtk4
4.2.0
$ pkg-config --cflags --libs gtkmm-4.0
-mfpmath=sse -msse -msse2 -pthread -I/…/include/gtkmm-4.0 -I/…/lib/gtkmm-4.0/include -I/…/include/pangomm-2.48 -I/…/lib/pangomm-2.48/include -I/…/include/giomm-2.68 -I/…/lib/giomm-2.68/include -I/…/include/glibmm-2.68 -I/…/lib/glibmm-2.68/include -I/…/include/cairomm-1.16 -I/…/lib/cairomm-1.16/include -I/…/include/sigc+±3.0 -I/…/lib/sigc+±3.0/include -I/…/include/gtk-4.0/unix-print -I/…/include/gtk-4.0 -I/…/include/gio-unix-2.0 -I/…/include/pango-1.0 -I/…/include/harfbuzz -I/…/include/pango-1.0 -I/…/include/fribidi -I/…/include/harfbuzz -I/…/include/gdk-pixbuf-2.0 -I/…/include/cairo -I/…/include/pixman-1 -I/…/include/graphene-1.0 -I/…/lib/graphene-1.0/include -I/…/include/glib-2.0 -I/…/lib/glib-2.0/include -I/usr/include/libdrm -I/usr/include/libpng16 -I/usr/include/x86_64-linux-gnu -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -L/…/lib -lgtkmm-4.0 -lpangomm-2.48 -lgiomm-2.68 -lglibmm-2.68 -lcairomm-1.16 -lsigc-3.0 -lgtk-4 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lvulkan -lgraphene-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.

Hej,

I think you forgot to initialise glib in your main(). Adding Glib::init() as first line to your main() should fix this.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.