Quiero crear un módulo GTK personalizado que debe cargarse cuando inicio una aplicación GTK.Cómo crear y cargar un módulo GTK?
La documentación sobre este tema es rara, he buscado mucho pero no pude ejecutarlo. Estoy en Ubuntu Linux con GTK3 e intenté sofar:
- Compilé y vinculé una biblioteca compartida con el método
void gtk_module_init(gint *argc, gchar ***argv[])
dentro. Por lo que yo entendí, esto debería ser suficiente para crear un módulo simple. código completo:
#include <iostream>
#include <gtk/gtk.h>
void gtk_module_init(gint *argc, gchar ***argv[]) {
std::cout << "huhu" << std::endl;
}
- Ponga esto en lib /usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libtest-gtk-module.so
- Probamos para iniciar una aplicación de esta manera:
gnomine --gtk-module=libtest-gtk-module.so
Pero todo lo que consigo es:Gtk-Message: Failed to load module "libtest-gtk-module.so"
Entonces, ¿qué tiene que hacer con el fin de hacer que GTK cargar esta biblioteca?
¡Muchas gracias de antemano!
Bueno, lo intenté. Pero sin éxito. Tal vez hay algún error en el módulo? El error proporcionado por GTK no es muy útil ... ¡Y gracias por el enlace, parece bastante útil! – Simme
+1 @Simme: compruebe la edición. Lo más probable es que tu problema haya sido con el problema del cambio de nombre. Puede hacer uso de 'readelf' u otras utilidades similares para comprobar si el símbolo' gtk_module_init' (como lo es sin ningún prefijo/sufijo, es decir, que se esté formando) está presente –