2017-07-30 6 views
-1

すみません、私は初心者です。 私はxfce4:mousepadの非常に単純なテキストエディタを読んで学んでいます。 しかし、それには、私が見ることができる2つの壊れたシンボルこれらのシンボルは、おそらくプロジェクトの他のヘッダファイルで定義されていxfceマウスパッドの壊れた記号

/home/utente/Desktop/mousepad-master/mousepad/mousepad-window.h: 
    22 G_BEGIN_DECLS 
    23 
    24: #define MOUSEPAD_TYPE_WINDOW   (mousepad_window_get_type()) 
    25 #define MOUSEPAD_WINDOW(obj)   (G_TYPE_CHECK_INSTANCE_CAST ((obj), MOUSEPAD_TYPE_WINDOW, MousepadWindow)) 
    26 #define MOUSEPAD_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MOUSEPAD_TYPE_WINDOW, MousepadWindowClass)) 
    .. 
    44 typedef struct _MousepadWindow  MousepadWindow; 
    45 
    46: GType   mousepad_window_get_type   (void) G_GNUC_CONST; 
    47 
    48 GtkWidget  *mousepad_window_new    (void); 



/home/utente/Desktop/mousepad-master/mousepad/mousepad-application.h: 
    25 typedef struct _MousepadApplication  MousepadApplication; 
    26 
    27: #define MOUSEPAD_TYPE_APPLICATION   (mousepad_application_get_type()) 
    28 #define MOUSEPAD_APPLICATION(obj)   (G_TYPE_CHECK_INSTANCE_CAST ((obj), MOUSEPAD_TYPE_APPLICATION, MousepadApplication)) 
    29 #define MOUSEPAD_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MOUSEPAD_TYPE_APPLICATION, MousepadApplicationClass)) 
    .. 
    32 #define MOUSEPAD_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MOUSEPAD_TYPE_APPLICATION, MousepadApplicationClass)) 
    33 
    34: GType    mousepad_application_get_type    (void) G_GNUC_CONST; 
    35 
    36 MousepadApplication *mousepad_application_get     (void); 
+0

「破損シンボル」とはどういう意味ですか?あなたは詳細を教えていただけますか? –

+0

これらのシンボルは、未承認です。 – Hardplus

+0

これらのシンボルはソースファイルにありません – Hardplus

答えて

0

mousepad_window_get_type と mousepad_application_get_type。プロジェクトディレクトリに$ grep -nr mousepad_window_get_type .を実行します。 mousepad_window_get_typeという単語の使用可能なすべての使用法が表示されます。しかし、プロジェクトをコンパイルするときにリンクしているライブラリの1つで利用可能な関数であると思われるので、これらのシンボルはプロジェクトのどこにでも定義されているとは限りません。

0

* _get_type関数は、G_DEFINE_TYPE macroで定義されています。また、G_DECLARE_FINAL_TYPEまたはG_DECLARE_DERIVABLE_TYPEで宣言することもできますが、これはマウスパッドの場合には当てはまりません。

XfceのプロジェクトはGTK +で書かれているので、最初に覚えておく必要があります。そうでないと、コード部分が混乱することがあります。 GTK +/GObject/GLib用のチュートリアルがたくさんあり、それらのドキュメントは(うまくいけば)包括的です。 The GLib/GTK+ Development Platformは初心者にとっては素晴らしいスタートです。

+0

これらのシンボルはG_DEFINE_TYPEマクロを使用して呼び出されません。彼らは2行のコードになっています! – Hardplus

+0

いいえ、 'mousepad_window_get_type'は' MOUSEPAD_TYPE_WINDOW'マクロによって "エイリアス"され、 'g_object_new(MOUSEPAD_TYPE_WINDOW、NULL)'として使われます。それは単なるGOjbectの独特のものです。 – AndreLDM

関連する問題