私はGTKアプリケーションを起動するときに読み込まれるカスタムGTKモジュールを作成したいと思います。GTKモジュールの作成とロード方法は?
このトピックに関するドキュメントはまれですが、私は多くを検索しましたが、動作させることができませんでした。私はGTK3でUbuntu Linuxの上だと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"
だから、他に何がGTKは、このライブラリをロードするようにするために行う必要がありますか?
事前に感謝します。
さて、私は試しました。しかし成功なし。多分モジュールに何か間違いがありますか? GTKによって提供されたエラーはそれほど役に立ちません...そして、リンクのおかげで、むしろ便利です! – Simme
+1 @Simme:編集を確認してください。おそらくあなたの問題は、名前のマングリング問題でした。 'readelf'や他のユーティリティを使って、' gtk_module_init'(任意の接頭辞/接尾辞、すなわちmanglingを除く)シンボルが存在するかどうかを調べることができます –