मैं एक कस्टम जीटीके मॉड्यूल बनाना चाहता हूं जिसे जीटीके एप्लीकेशन शुरू करते समय लोड किया जाना चाहिए।जीटीके मॉड्यूल कैसे बनाएं और लोड करें?
इस विषय पर दस्तावेज़ीकरण दुर्लभ है, मैंने बहुत कुछ खोजा लेकिन मैं इसे चलाने में विफल रहा। मैं GTK3 साथ उबंटू लिनक्स पर हूँ और sofar की कोशिश की:
- संकलित और विधि
void gtk_module_init(gint *argc, gchar ***argv[])
अंदर के साथ एक साझा पुस्तकालय जुड़े। जहां तक मैं समझ गया, यह एक साधारण मॉड्यूल बनाने के लिए पर्याप्त होना चाहिए। पूर्ण कोड:
#include <iostream>
#include <gtk/gtk.h>
void gtk_module_init(gint *argc, gchar ***argv[]) {
std::cout << "huhu" << std::endl;
}
- एक आवेदन शुरू करने के /usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libtest-gtk-module.so
- कोशिश में इस lib रखो इस तरह:
gnomine --gtk-module=libtest-gtk-module.so
लेकिन सब मुझे मिलता है:Gtk-Message: Failed to load module "libtest-gtk-module.so"
तो और क्या आदेश जीटीके इस लाइब्रेरी लोड करने के लिए में किया जा सकता है?
अग्रिम में बहुत धन्यवाद!
ठीक है, मैंने कोशिश की। लेकिन बिना किसी सफलता के। शायद मॉड्यूल में कुछ गलती है? जीटीके द्वारा प्रदान की गई त्रुटि बहुत उपयोगी नहीं है ... और लिंक के लिए धन्यवाद, यह अपेक्षाकृत उपयोगी लगता है! – Simme
+1 @ सिमेम: कृपया संपादन की जांच करें। सबसे अधिक संभावना है कि आपकी समस्या नाम के मुद्दे के साथ थी। आप 'readelf' या ऐसी अन्य उपयोगिताओं का उपयोग यह जांचने के लिए कर सकते हैं कि' gtk_module_init' (जैसा कि w/o कोई उपसर्ग/प्रत्यय i.e. mangling है) प्रतीक मौजूद है –