我是GUI编程的新手。我最近在Linux上安装了Gtk + 3版本。但是,当我键入以下代码时:
#include <gtk/gtk.h>
#include <stdio.h>
static int count = 0;
void button_clicked(GtkWidget *button, gpointer data)
{
printf(“%s pressed %d time(s) \n”, (char *) data, ++count);
}
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *button;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
button = gtk_button_new_with_label(“Hello World!”);
gtk_container_add(GTK_CONTAINER(window), button);
g_signal_connect(GTK_OBJECT (button), “clicked”,
GTK_SIGNAL_FUNC (button_clicked),
“Button 1”);
gtk_widget_show(button);
gtk_widget_show(window);
gtk_main ();
return 0;
}
要运行此代码,我使用了以下命令:$ gcc gtk1.c –o gtk1 pkg-config --cflags --libs gtk+-3.0
但是我有这样的错误
undefined reference to GTK_OBJECT;
undefined reference to GTK_SIGNAL_FUNC;
答案 0 :(得分:0)
这是因为您的代码示例适用于GTK + 2的旧版本。this.$scope.$watch(() => {
return this.$state.current.name
}, (oldVal, newVal) => {
console.log(oldVal, newVal);
console.log(this.$state.current.name;
});
在GTK + 2.x的较晚版本中已弃用,最后在GTK + 3中删除。与GTK_OBJECT
相同。两者都已移至GObject库,现在分别以GTK_SIGNAL_FUNC
和G_OBJECT
的形式出现。
为避免使用过时的代码,只需开始使用code samples from the GTK+ 3 documentation。