GTK编程——linux下GTK开发环境建立(ubuntu)

1、配置gcc

刚装好的系统中已经有GCC了,但是这个GCC什么文件都不能编译,因为没有一些必须的头文件,所以要安装build-essential这个软件包,安装了这个包会自动安装上g ,libc6-dev,linux-libc-dev,libstdc 6-4.1-dev等一些必须的软件和头文件的库。

可以在新立得里面搜索build-essential或输入下面命令

sudo apt-get install build-essential

安装完成后写一个C语言程序testc.c测试一下。

int main()
{
printf("Hello Ubuntu!\n");
return 0;
}

$ gcc testc.c -o testc
$ ./testc

Hello Ubuntu!

2、gtk的安装
sudo apt-get install vim #使用vim来编写代码,当然您可以使用任何自己喜欢的编辑器

sudo apt-get install build-essential #这将安装gcc/g /gdb/make 等基本编程工具

sudo apt-get install gnome-core-devel #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件

sudo apt-get install pkg-config #用于在编译GTK程序时自动找出头文件及库文件位置

sudo apt-get install devhelp #这将安装 devhelp GTK文档查看程序

sudo apt-get install libglib2.0-doc libgtk2.0-doc #这将安装 gtk/glib 的API参考手册及其它帮助文档

sudo apt-get instal glade libglade2-dev #这将安装基于GTK的界面构造程序。

安装完成后我们也同样做个测试程序

/***********************************************************************
File:            firstgul.c
Description:        first program to test gul
Author:            Junnes Yang
Data:            Jun 11, 2012
Version:        1.0
***********************************************************************/


#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_window_set_title(GTK_WINDOW(window),"Hello,World");

    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(window);  
 
    gtk_widget_show (button);

    gtk_main();  
 
    return 0;  
 

用下面命令编译运行

$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk -2.0`
$ ./gtktest

会显示一个带有一个按钮的窗口,点击按钮以后窗口关闭,命令行显示Hello Ubuntu。

可编写对应Makefile文件

firstgui:firstgui.c


    gcc -Wall -g -o $@ $< `pkg-config --cflags --libs gtk+-2.0` -export-dynamic


脚本文件run.sh:

#!/bin/sh
gcc  -Wall -o firstgui firstgui.c `pkg-config --cflags --libs gtk+-2.0` -export-dynamic

./firstgui


脚本文件在执行前需要修改权限

$chmod 777 run.sh

执行后:



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值