在我的gtk +应用程序中,我在mainwin.c中有函数:
void
on_prev( GtkWidget* btn, MainWin* mw )
{
...
}
在文件ui.h中我有:
#include "mainwin.h"
static const GtkActionEntry entries[] = {
{
"Go Back",
GTK_STOCK_GO_BACK,
"Go Back",
"<control>b",
"Go Back",
G_CALLBACK(on_prev)
},
}
但是当我尝试编译这个应用程序时,我看到错误: ui.h:错误:'on_prev'在这里未声明(不在函数中)。
怎么了?
谢谢。
答案 0 :(得分:1)
为它添加一个原型,可能在mainwin.h中:
void
on_prev( GtkWidget* btn, MainWin* mw );
答案 1 :(得分:0)
你真的不应该在标题中有静态数据。这意味着每次从C文件中包含该文件时,都会获得一个新的静态(即该C文件的本地)实例。这很可能不是你所需要的。
将数组的声明和初始化移动到C文件中,并确保正确声明它所引用的各种函数。