[问题]配置GTK环境的错误!

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
lyheqs
帖子: 12
注册时间: 2008-04-30 2:58
联系:

[问题]配置GTK环境的错误!

#1

帖子 lyheqs » 2008-05-11 3:13

首先我以确定我照/*http://wiki.ubuntu.org.cn/Gtk与Qt编译环境安装与配置*/这个学习帖子配置的,
在这个过程中,终端也提示我安装成功,我也试过几次配置的命令,终端都提示我已经是最新的版本!
在我运行这个程序(就是这个帖子的示例):
#include<gtk/gtk.h>
void hello(GtkWidget *widget,gpointer data)
{
g_print("Hello Ubuntu!\n");
}
gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)
{
g_print ("delete event occurred\n");
return(TRUE);
}
void destroy(GtkWidget *widget,gpointer data)
{
gtk_main_quit();
}
int main( int argc, char *argv[] )
{
GtkWidget *window;
GtkWidget *button;
gtk_init (&argc, &argv);
window=gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
button = gtk_button_new_with_label ("Hello Ubuntu!");
gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (gtk_widget_destroy),GTK_OBJECT (window));
gtk_container_add (GTK_CONTAINER (window), button);
gtk_widget_show (button);
gtk_widget_show (window); /*显示一个窗口*/
gtk_main(); /*进入主循环*/
return(0);
}

接下来我执行了:
$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
但是结果却是如下:

river@river-stefanie:~$ gcc gtkhello.c -o gtkhello 'pkg-config --cflags --libs gtk+-2.0'
gcc: pkg-config --cflags --libs gtk+-2.0:没有该文件或目录
gtkhello.c:1:20: 错误: gtk/gtk.h:没有该文件或目录
gtkhello.c:2: 错误: expected ‘)’ before ‘*’ token
gtkhello.c:6: 错误: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘delete_event’
gtkhello.c:11: 错误: expected ‘)’ before ‘*’ token
gtkhello.c: 在函数‘main’中:
gtkhello.c:17: 错误: ‘GtkWidget’未声明 (在此函数内第一次使用)
gtkhello.c:17: 错误: (即使在一个函数内多次出现,每个未声明的标识符在其
gtkhello.c:17: 错误: 所在的函数内也只报告一次。)
gtkhello.c:17: 错误: ‘window’未声明 (在此函数内第一次使用)
gtkhello.c:18: 错误: ‘button’未声明 (在此函数内第一次使用)
gtkhello.c:20: 错误: ‘GTK_WINDOW_TOPLEVEL’未声明 (在此函数内第一次使用)
gtkhello.c:21: 错误: ‘delete_event’未声明 (在此函数内第一次使用)
gtkhello.c:21: 错误: ‘NULL’未声明 (在此函数内第一次使用)
gtkhello.c:22: 错误: ‘destroy’未声明 (在此函数内第一次使用)
gtkhello.c:25: 错误: ‘hello’未声明 (在此函数内第一次使用)
gtkhello.c:26: 错误: ‘gtk_widget_destroy’未声明 (在此函数内第一次使用)


我实在找不错原因在那?救助大家!
头像
shellex
帖子: 2180
注册时间: 2007-02-18 19:33
系统: OSX
来自: lyric.im
联系:

#2

帖子 shellex » 2008-05-11 8:37

`pkg-config --libs gtk+-2.0`
头像
shellex
帖子: 2180
注册时间: 2007-02-18 19:33
系统: OSX
来自: lyric.im
联系:

#3

帖子 shellex » 2008-05-11 8:40

是`不是'
头像
lyheqs
帖子: 12
注册时间: 2008-04-30 2:58
联系:

结果还是一样

#4

帖子 lyheqs » 2008-05-11 15:14

`pkg-config --libs gtk+-2.0` 结果还是一样!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#5

帖子 eexpress » 2008-05-11 16:02

没安装dev包??
● 鸣学
头像
lyheqs
帖子: 12
注册时间: 2008-04-30 2:58
联系:

找到问题的原因了!

#6

帖子 lyheqs » 2008-05-11 19:04

问题在于这条命令:gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`


其中的 `pkg-config --cflags --libs gtk+-2.0`因该是 `pkg-config --cflags --libs gtk+-2.0`

注意到了吗? ESC键下的` 和和Enter键左边的' 是不是很象,问题就在这里!

因该是ESC按键下的` !

在这里多谢 shely,他的细心才能让程序编译通过!
头像
shellex
帖子: 2180
注册时间: 2007-02-18 19:33
系统: OSX
来自: lyric.im
联系:

#7

帖子 shellex » 2008-05-23 20:13

shellex还是shely?
dbzhang800
帖子: 3182
注册时间: 2006-03-10 15:10
来自: xi'an China
联系:

#8

帖子 dbzhang800 » 2008-05-23 20:16

shellex 写了:shellex还是shely?
:em04
回复