在Dubuntu中配置Code::Blocks使其支持GTK+开发!

Ubuntu国外衍生版本或其它衍生版本
回复
头像
lvjinhua
帖子: 436
注册时间: 2006-02-23 14:46
来自: 上海
送出感谢: 0
接收感谢: 1 次
联系:

在Dubuntu中配置Code::Blocks使其支持GTK+开发!

#1

帖子 lvjinhua » 2006-09-17 10:42

这里主要介绍如何在 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;

}
附件
CodeBlocks v1.0.png
图4, Code::Blocks 主界面
Screenshot-Compiler and debugger settings-1.png
图3 链接器设置
Screenshot-Compiler and debugger settings.png
图2 设置头文件搜索目录
Screenshot-Console application.png
图1 在新建&quot;Console Applications&quot;的向导中选择C语言!
====
dubuntu-6.06-livecd-i386正式版正式完工!
====
*支持LiveCD硬盘启动
*Linux 2.6.15-23-686
*永中Office 2007
*LumaQQ+OpenQ+cycloneQQ
**N 多的编程及调试工具**
头像
mason105
帖子: 170
注册时间: 2007-04-30 23:56
来自: NJ
送出感谢: 0
接收感谢: 0

#2

帖子 mason105 » 2007-07-27 1:56

谢谢
Ctrl the life,Shift your future
把握生活,创造未来
HellKnight
帖子: 4
注册时间: 2008-11-17 10:36
送出感谢: 0
接收感谢: 0

Re: 在Dubuntu中配置Code::Blocks使其支持GTK+开发!

#3

帖子 HellKnight » 2008-11-24 22:03

怎么才能下载每夜编译的版本?我找了半天也找不到下载连接阿。。。
白水月
帖子: 86
注册时间: 2008-03-10 11:28
送出感谢: 0
接收感谢: 0

Re: 在Dubuntu中配置Code::Blocks使其支持GTK+开发!

#4

帖子 白水月 » 2009-01-25 1:01

`pkg-config --libs gtk+-2.0`

注意:上边上( ` )不是普通的单引号( ' )
感动,居然是这里错了。
虽然没用IDE,不过管用。
谢谢楼主。

新年快乐。
回复

回到 “Ubuntu国外衍生版”