当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : gtk程序编译问题?
帖子发表于 : 2007-07-17 21:48 

注册: 2007-05-06 10:56
帖子: 28
送出感谢: 1
接收感谢: 0 次
程序代码如下:
/* -*-coding: utf-8;-*- */
/* gtkhello.c -- traditional GTK+ Hello program */

#include <gtk/gtk.h>

void hello(GtkWidget *widget, gpointer data)
{
g_print("Hello, World!\n");
}

/* standard event handlers */
gint delete_event(GtkWidget *widget, GdkEvent event, gpointer data)
{
/* when this function returns FALSE, the delete-event
signal becomes a destroy signal */
return FALSE;
}

void end_program(GtkWidget *widget, gpointer data)
{
/* End the main loop */
gtk_main_quit();
}

int main(int argc, char **argv)
{
GtkWindow *window;
GtkButton *button;

/* Initialize GTK+ */
gtk_init(&argc, &argv);

/* create window, set default height and width to 200 pixels */
window = g_object_new(GTK_TYPE_WINDOW,
"default-height", 200,
"default-width", 200,
"border-width", 12,
"title", "GtkHello",
NULL);

/* add signal handlers for window */
g_signal_connect(window,
"delete-event", G_CALLBACK(delete_event),
NULL);

g_signal_connect(window,
"destroy", G_CALLBACK(end_program),
NULL);

/* create a button */
button = g_object_new(GTK_TYPE_BUTTON,
"label", "_Hello, World!\nClick Here.",
"use-underline", TRUE,
NULL);

/* install signal handlers for button */
g_signal_connect(button,
"clicked", G_CALLBACK(hello),
NULL);

g_signal_connect_swapped(button,
"clicked", G_CALLBACK(gtk_widget_destroy),
window);

/* pack the button into the window, show all of its contents */
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(button));

gtk_widget_show_all(GTK_WIDGET(window));

/* start main event loop */
gtk_main();

return 0;
}

按照书上的说明用gcc -o gtkhello gtkhello.c `pkg-config --cflags --libs gtk+2.0`编译,出现下面的问题,请问怎么解决,谢谢!
Package gtk+2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+2.0' found
gtkhello.c:4:21: 错误: gtk/gtk.h:No such file or directory
gtkhello.c:6: 错误: expected ‘)’ before ‘*’ token
gtkhello.c:12: 错误: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘delete_event’
gtkhello.c:19: 错误: expected ‘)’ before ‘*’ token
gtkhello.c: 在函数 ‘main’ 中:
gtkhello.c:27: 错误: ‘GtkWindow’ 未声明 (在此函数内第一次使用)
gtkhello.c:27: 错误: (即使在一个函数内多次出现,每个未声明的标识符在其
gtkhello.c:27: 错误: 所在的函数内只报告一次。)
gtkhello.c:27: 错误: ‘window’ 未声明 (在此函数内第一次使用)
gtkhello.c:28: 错误: ‘GtkButton’ 未声明 (在此函数内第一次使用)
gtkhello.c:28: 错误: ‘button’ 未声明 (在此函数内第一次使用)
gtkhello.c:34: 错误: ‘GTK_TYPE_WINDOW’ 未声明 (在此函数内第一次使用)
gtkhello.c:39: 错误: ‘NULL’ 未声明 (在此函数内第一次使用)
gtkhello.c:43: 错误: ‘delete_event’ 未声明 (在此函数内第一次使用)
gtkhello.c:47: 错误: ‘end_program’ 未声明 (在此函数内第一次使用)
gtkhello.c:51: 错误: ‘GTK_TYPE_BUTTON’ 未声明 (在此函数内第一次使用)
gtkhello.c:53: 错误: ‘TRUE’ 未声明 (在此函数内第一次使用)
gtkhello.c:58: 错误: ‘hello’ 未声明 (在此函数内第一次使用)
gtkhello.c:62: 错误: ‘gtk_widget_destroy’ 未声明 (在此函数内第一次使用)
weiyuan@weiyuan-desktop:~/program/gnome-2-examples/chapter3/gtkhello$ gcc -o gtkhello gtkhello.c `pkg-config --cflags --libs gtk+`
gtkhello.c: 在函数 ‘main’ 中:
gtkhello.c:39: 警告: 赋值时将整数赋给指针,未作类型转换
gtkhello.c:54: 警告: 赋值时将整数赋给指针,未作类型转换
/tmp/ccsgU8um.o: In function `main':
gtkhello.c:(.text+0x9d): undefined reference to `g_object_new'
gtkhello.c:(.text+0xac): undefined reference to `G_CALLBACK'
gtkhello.c:(.text+0xcb): undefined reference to `g_signal_connect'
gtkhello.c:(.text+0xd7): undefined reference to `G_CALLBACK'
gtkhello.c:(.text+0xf6): undefined reference to `g_signal_connect'
gtkhello.c:(.text+0x12b): undefined reference to `g_object_new'
gtkhello.c:(.text+0x13a): undefined reference to `G_CALLBACK'
gtkhello.c:(.text+0x159): undefined reference to `g_signal_connect'
gtkhello.c:(.text+0x165): undefined reference to `G_CALLBACK'
gtkhello.c:(.text+0x185): undefined reference to `g_signal_connect_swapped'
collect2: ld 返回 1


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-07-18 7:32 

注册: 2006-01-10 19:09
帖子: 1334
送出感谢: 0 次
接收感谢: 0 次
要编译你得先装开发包~


sudo apt-get build-dep gedit


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-07-18 13:05 
头像

注册: 2007-03-14 20:33
帖子: 524
地址: 南京
送出感谢: 0 次
接收感谢: 0 次
完全可以编译阿!
检查一下libgtk2.0-dev有没有装!


附件:
文件注释: 编译你的代码的运行结果
Screenshot-GtkHello.png
Screenshot-GtkHello.png [ 6.39 KiB | 被浏览 2033 次 ]
页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-07-18 13:16 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
gcc -o gtkhello a.c `pkg-config --cflags --libs gtk+-2.0`


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-07-20 21:56 

注册: 2007-05-06 10:56
帖子: 28
送出感谢: 1
接收感谢: 0 次
谢了,可能是包没有装


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-07-24 19:18 

注册: 2007-05-16 21:27
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET 写道:
gcc -o gtkhello a.c `pkg-config --cflags --libs gtk+-2.0`

谢谢指点!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译