xfce mousepad源代码中的符号断开

时间:2017-07-30 15:43:39

标签: c symbols xfce

对不起,我是新手。 我正在尝试学习xfce4:mousepad的非常简单的文本编辑器。 但在其中我可以看到两个破碎的符号 mousepad_window_get_type 和 mousepad_application_get_type

/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);

2 个答案:

答案 0 :(得分:0)

这些符号可能在项目的其他头文件中定义。在项目目录中执行$ grep -nr mousepad_window_get_type .。这将显示mousepad_window_get_type一词的所有可用用法。但是,您很可能在项目的任何位置都找不到这些符号,因为我怀疑它们是编译项目时链接的库中可用的函数。

答案 1 :(得分:0)

* _get_type函数由G_DEFINE_TYPE macro定义。它们也可以由G_DECLARE_FINAL_TYPEG_DECLARE_DERIVABLE_TYPE声明,但鼠标垫不是这样。

Xfce的项目是用GTK +编写的,所以你需要先学习它,否则你会发现一些代码部分令人困惑。你可以找到很多关于GTK + / GObject / GLib的教程,他们的文档是(希望)全面的。 The GLib/GTK+ Development Platform是初学者的好开始。