我想創建一個自定義的GTK模塊,當我啓動一個GTK應用程序時應該加載它。如何創建和加載GTK模塊?
有關此主題的文檔很少,我搜索了很多,但未能使其運行。我在Ubuntu Linux上使用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;
}
- 將這個lib放到/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libtest-gtk-module.so
- 試圖推出一個應用程序像這樣:
gnomine --gtk-module=libtest-gtk-module.so
但我得到的是:Gtk-Message: Failed to load module "libtest-gtk-module.so"
那麼還有什麼是爲了讓GTK加載該庫做?
非常感謝提前!
嗯,我試過了。但沒有成功。也許模塊有一些錯誤? GTK提供的錯誤並不是非常有用......並且感謝鏈接,它似乎相當有用! – Simme 2012-04-22 07:52:04
+1 @Simme:請檢查編輯。最有可能你的問題是與名稱問題。您可以使用'readelf'或其他這類實用程序來檢查是否存在'gtk_module_init'(就像沒有任何前綴/後綴,即mangling)符號一樣 – 2012-04-23 15:58:22