- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
正如标题所说,我收到一个编译错误,我似乎无法修复:
error: redefinition of 'tinygecko_notebook_get_type'
note: previous definition of 'tinygecko_notebook_get_type' was here
其中错误指向此行(此代码片段的第一个):
GType
tinygecko_notebook_get_type (void)
{
static GType type = 0;
if (type == 0) {
static const GTypeInfo info = {
sizeof (TinygeckoNotebookClass), /* size of class struct */
NULL, /* base_init */
NULL, /* base_finalize */
(GClassInitFunc)tinygecko_notebook_class_init, /* class_init */
NULL, /* class_finalize */
NULL, /* class_data */
sizeof (TinygeckoNotebook),
0, /* n_preallocs */
(GInstanceInitFunc)tinygecko_notebook_init /* instance_init */
};
type = g_type_register_static (GTK_TYPE_NOTEBOOK, "TinygeckoNotebook", &info, 0);
}
return type;
}
和注释行指向类型设置
G_DEFINE_TYPE (TinygeckoNotebook, tinygecko_notebook, GTK_TYPE_NOTEBOOK);
这两个代码段都位于.c 文件中(note 行位于error 行上方)。
感谢帮助..我很困惑。为什么 gtk+ 宏要重新定义一个函数,我必须为自己的基于 gobject 的类初始化器和终结器(如果存在)设置该函数(在本例中基于 GtkNotebook)。
最佳答案
G_DEFINE_TYPE 是一个快捷方式,可以让您避免编写 get_type 函数。因此,如果您手动实现 get_type 函数,则不想使用 G_DEFINE_TYPE。
在这种情况下,我没有注意到您的手工编码实现中有任何特殊之处,看起来只是常见的样板,因此您可以将其删除并使用 G_DEFINE_TYPE。
还有 G_DEFINE_TYPE 的变体,例如 G_DEFINE_TYPE_WITH_CODE、G_DEFINE_ABSTRACT_TYPE、G_DEFINE_TYPE_EXTENDED 等,这些变体让您稍微偏离纯样板文件,但仍然避免全部手动完成。
关于c - 重新定义 *_get_type(void) gtk+ 所需方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5107296/
我刚刚开始学习GTK。我正在浏览gtk+3.0.0的源代码,我发现_get_type()的实现一些 gtk 对象类型的方法,但有些没有此方法的实现,例如 GtkRange 。这有什么原因吗?据我从 G
正如标题所说,我收到一个编译错误,我似乎无法修复: error: redefinition of 'tinygecko_notebook_get_type' note: previous defini
我是一名优秀的程序员,十分优秀!