当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 在Dubuntu中配置Code::Blocks使其支持GTK+开发!
帖子发表于 : 2006-09-17 10:42 
头像

注册: 2006-02-23 14:46
帖子: 436
地址: 上海
送出感谢: 0 次
接收感谢: 1
这里主要介绍如何在 Dubuntu 中安装 Code::Blocks 开发环境, 并使用它 编辑/编译/运行 GTK+程序, 但不能使用它直接创建图形界面, 要创建图形界面还是推荐Glade!

1. GTK+编译平台的安装
代码:
从Dubuntu的CD2安装Gnome开发环境, 或通过下边的命令安装:
sudo apt-get install gnome-devel build-essential


2. Code::Blocks 的安装
从下边的链接可以下载到Code::Blocks-1.0 的最新开发板, 我使用的是 2006.09.14 编译的版本
http://forums.codeblocks.org/index.php?board=20.0

3. 在Code::Blocks中创建工程时, 选择"Console Application", 在出现的向导中, 第三步时选择使用 C 语言, 如下图1所示!
现在已经创建完一个简单的控制台应用程序, 可以编译运行看看能不能成功!

4. 头文件搜索路径的设置:这一步最关键, 即让 CodeBlocks在编译/链接程序时能够找到GTK+的头文件和库文件, 方法如下:
*在任一控制台运行如下命令, 得到编译GTK+程序所需要的头文件和库文件列表:
代码:
pkg-config --cflags  gtk+-2.0

将所有输出复制到如图2所示的位置, 图2所示的位置可以在Code::Blocks中通过单击菜单"Settings"->"Compiler and Debugger" 得到!

5. 链接所需库文件的设置: 如图3所示, 加入如下的语句即可:
代码:
`pkg-config --libs gtk+-2.0`

注意:上边上( ` )不是普通的单引号( ' )

图3也是通过单击菜单"Settings"->"Compiler and Debugger" 得到!

注意: 如果你在编译GTK+程序时要使用到其它的库, 即在第 4 和第 5 步要改变相应的库名(即 gtk+-2.0 , 祝成功, 最后附上一个小的测试程序:
代码:
#include<gtk/gtk.h>

gint
close_application(GtkWidget *widget, GdkEvent *event, gpointer data)
{
   g_print("Quit!\n");
   gtk_main_quit();
   return FALSE;
}

void
radio_radio_callback(GtkWidget *widget, gpointer data)
{
   if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
      g_print("Clicked radio button.\n");
   else
      g_print("Release radio button.\n");
}

int
main(int argc, char *argv[])
{
   GtkWidget *window, *box1, *box2, *button, *separator;
   GSList *group;

   gtk_init(&argc, &argv);

   window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_window_set_title(GTK_WINDOW(window),"test radio button");
   g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(close_application), NULL);

   gtk_container_set_border_width(GTK_CONTAINER(window), 20);

   box1 = gtk_vbox_new(FALSE, 0);
   gtk_container_add(GTK_CONTAINER(window), box1);

   box2 = gtk_vbox_new(FALSE,10);
   gtk_container_set_border_width(GTK_CONTAINER(box2), 10);
   gtk_box_pack_start(GTK_BOX(box1), box2, TRUE, TRUE, 0);

   button = gtk_radio_button_new_with_label(NULL, "button1");
   gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0);

   group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(button));
   button = gtk_radio_button_new_with_label(group, "button2");
   g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(radio_radio_callback),NULL);

   gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0);
   group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(button));

   button = gtk_radio_button_new_with_label(group, "button3");
   gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0);

   button = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(button),"button4");
   gtk_box_pack_start(GTK_BOX(box2), button ,TRUE, TRUE, 0);

   separator = gtk_hseparator_new();
   gtk_box_pack_start(GTK_BOX(box1), separator, FALSE, TRUE, 0);
   gtk_widget_show(separator);
   ////
   box2 = gtk_vbox_new(FALSE, 10);
   gtk_container_set_border_width(GTK_CONTAINER(box2),10);
   gtk_box_pack_start(GTK_BOX(box1), box2, FALSE, TRUE, 0);

   button = gtk_button_new_with_label("close");
   //g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(close_application), window);
   g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(close_application),NULL);
   gtk_box_pack_start(GTK_BOX(box2), button , FALSE, FALSE, 0);

   GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);

   gtk_widget_grab_default(button);

   gtk_widget_show_all(window);

   gtk_main();

   return 0;

}


附件:
文件注释: 图1 在新建&quot;Console Applications&quot;的向导中选择C语言!
Screenshot-Console application.png
Screenshot-Console application.png [ 26.84 KiB | 被浏览 2440 次 ]

文件注释: 图2 设置头文件搜索目录
Screenshot-Compiler and debugger settings.png
Screenshot-Compiler and debugger settings.png [ 68.21 KiB | 被浏览 2457 次 ]

文件注释: 图3 链接器设置
Screenshot-Compiler and debugger settings-1.png
Screenshot-Compiler and debugger settings-1.png [ 66.16 KiB | 被浏览 2422 次 ]

文件注释: 图4, Code::Blocks 主界面
CodeBlocks v1.0.png
CodeBlocks v1.0.png [ 86.8 KiB | 被浏览 2377 次 ]



_________________
====
dubuntu-6.06-livecd-i386正式版正式完工!
====
*支持LiveCD硬盘启动
*Linux 2.6.15-23-686
*永中Office 2007
*LumaQQ+OpenQ+cycloneQQ
**N 多的编程及调试工具**
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-07-27 1:56 
头像

注册: 2007-04-30 23:56
帖子: 170
地址: NJ
送出感谢: 0 次
接收感谢: 0 次
谢谢


_________________
Ctrl the life,Shift your future
把握生活,创造未来


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 在Dubuntu中配置Code::Blocks使其支持GTK+开发!
帖子发表于 : 2008-11-24 22:03 

注册: 2008-11-17 10:36
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
怎么才能下载每夜编译的版本?我找了半天也找不到下载连接阿。。。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 在Dubuntu中配置Code::Blocks使其支持GTK+开发!
帖子发表于 : 2009-01-25 1:01 

注册: 2008-03-10 11:28
帖子: 86
送出感谢: 0 次
接收感谢: 0 次
引用:
`pkg-config --libs gtk+-2.0`

注意:上边上( ` )不是普通的单引号( ' )


感动,居然是这里错了。
虽然没用IDE,不过管用。
谢谢楼主。

新年快乐。


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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