• 第一个Gtk+窗口程序编译手记(Linux平台)


         本文的编译环境为Linux RedHat 9.0 + gcc,在编译以下窗口程序之前,必须确定你的系统已安装了以下三大组件:

    1:开发工具

    2:X软件开发

    3:GNOME软件开发

         如果在安装Linux RedHat 9.0的时候未选择这三个软件包进行安装,则可以单击红帽图标-系统设置-添加/删除应用程序,打开软件包管理窗口,点选开发工具,X软件开发,GNOME软件开发这三项前的复选框进行安装。

    1: 将以下代码保存为gtkwin.c文件,放在root管理员目录下。

    #include <gtk/gtk.h>

    /*按钮单击回调函数*/
    void Button_Click(GtkWidget * widget,gpointer * data)
    {
        
    /*在命令行上打印一行消息*/
        g_print(
    "button clicked and data = %s\n",(char *)data);
    }

    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);
        
    /*设置窗口关闭销毁时的回调函数*/
        g_signal_connect(GTK_OBJECT(window),
    "destroy",GTK_SIGNAL_FUNC(Destroy),NULL);
        
    /*设置窗口标题*/
        gtk_window_set_title(GTK_WINDOW(window),
    "My First GTK+ Window");
        
    /*设置窗口边框宽度*/
        gtk_container_border_width(GTK_CONTAINER(window),
    20);

        
    /*创建按钮*/
        button 
    = gtk_button_new_with_label("Hello World");
        
    /*设置按钮单击时的回调函数*/
        g_signal_connect(GTK_OBJECT(button),
    "clicked",GTK_SIGNAL_FUNC(Button_Click),"Hello World!");

        
    /*将按钮添加到窗口中*/
        gtk_container_add(GTK_CONTAINER(window),button);
        
    /*显示按钮和窗口*/
        gtk_widget_show(button);
        gtk_widget_show(window);

        
    /*进入消息循环*/
        gtk_main();

        
    return 0;
    }

    2:单击红帽图标-系统工具-终端,打开命令行窗口。输入以下命令。其中[root@localhost root]#为命令行提示符,不需要手工输入。该提示符表示的是[当前用户名@当前机器名 当前所在目录]。注意,如果源文件不在root目录,则应先进入到该目录下。

    [root@localhost root]# gcc -o gtkwin gtkwin.c `pkg-config --libs --cflags gtk+-2.0`
    [root@localhost root]# ./gtkwin

          -o gtkwin选项表示编译生成的程序文件名为gtkwin,如果不指定该选项,则gcc编译器默认为a.out。gtkwin.c指定要编译的源文件名,`pkg-config --libs --cflags gtk+-2.0`要注意的是前后的两个"`"字符为键盘上数字键1旁边的那个键的输入,而不是";"键旁边的那个单引号键的输入。

          ./gtkwin运行编译生成后的当前目录下的gtkwin程序。

          OK,到这里一个Gtk+窗口程序就可以编译成功了。

          另一种编译方法可以使用Makefile,输入以下代码保存为Makefile文件,同样放到root管理员目录下。

         

    CC=gcc
    program
    =gtkwin
    #PATH 
    += /usr/include/gtk2.0
    LDLIBS
    =`pkg-config --libs gtk+-2.0`
    CFLAGS
    = -Wall -g `pkg-config --cflags gtk+-2.0`

    $(program):$(program).o
    $(CC) $(LDLIBS) $(program).o 
    -o $(program)

    $(program).o:$(program).c
    $(CC) $(CFLAGS) 
    -c $(program).c

    clran:
    -rm -f $(program)
    -rm -*.o

          再在终端里输入:

    [root@localhost root]# make

    [root@localhost root]# ./gtkwin

          同样可以成功编译,并且方便得多。

  • 相关阅读:
    【剑指offer】数字在排序数组中出现的次数
    移动互联网的架构设计浅谈一
    Android开发中遇到的adb问题解决方法
    Datagrid分页、排序、删除代码
    新辰:关于个人站点安全问题的分析及对策探讨
    Android开发中,activity页面跳转后是空白
    实战——二、c#窗体(2)
    实战——一、c#窗体(1)
    c#的sealed修饰符
    c#中,类的重写中,new和override的区别
  • 原文地址:https://www.cnblogs.com/ZYM/p/1412172.html
Copyright © 2020-2023  润新知