【GTK+3.0】C语言图形库GTK+3.0在Windows Cygwin下的环境配置(更新时间:2016-04-21)

来源:互联网 发布:直销软件知晓软件开发 编辑:程序博客网 时间:2024/05/11 03:18

【GTK+3.0】C语言图形库GTK+3.0在Windows Cygwin下的环境配置

经历了从下午一点开始到现在的环境配置,Doge终于成功地实现了GTK+的图形环境设置,并且成功的”Hello World!”

引言
aaaa首先简单介绍一下GTK吧,Doge也是今天下午想开始写数据库作业的时候想给自己的程序写一个图形界面。之前在上课的过程中接触到过TC环境下的graphics.h(又让我默默想到了我浙一位喜欢使用远古编译器的白姓老师,2333333,趁此机会强行黑一波),除此之外,还有VS兼容的MFC,以及Qt和C#等等,不过我们老师只要求我们使用C语言编程,所以搜索来搜索去找到了GTK+project这样一个C语言环境下的图形库。

GTK简介
aaaaGTK+(GIMP Toolkit)是一套源码以LGPL许可协议分发、跨平台的图形工具包。最初是为GIMP写的,已成为一个功能强大、设计灵活的一个通用图形库,是GNU/Linux下开发图形界面的应用程序的主流开发工具之一。并且,GTK+也有Windows版本和Mac OS X版。
aaaaGTK+ 是一种图形用户界面(GUI)工具包。也就是说,它是一个库(或者,实际上是若干个密切相关的库的集合),它支持创建基于 GUI 的应用程序。可以把 GTK+ 想像成一个工具包,从这个工具包中可以找到用来创建 GUI 的许多已经准备好的构造块。
aaaaGTK+虽然是用C语言写的,但是您可以使用你熟悉的语言来使用GTK+,因为GTK+已经被绑定到几乎所有流行的语言上,如:C++,PHP, Guile,Perl, Python, TOM, Ada95, Objective C, Free Pascal, and Eiffel。
aaaa总而言之,GTK+就是每一个使用MinGW编译的程序员都可以使用的C语言库

环境初始化
aaaaDogeWindows环境下配置了Cygwin环境来使得Windows能够像Linux/Unix一样使用,同时也使得Windows能够兼容很多Linux\Unix中的功能。下面附上外网下载链接:
32位:https://cygwin.com/setup-x86.exe
64位:https://cygwin.com/setup-x86_64.exe
浙大内部的同学可以使用下面的链接进行下载(不知道会不会失效):
32位:http://10.214.224.77/database_system_lab/cygwin/setup-x86.exe
64位:http://10.214.224.77/database_system_lab/cygwin/setup-x86_64.exe
安装的过程的截图在这里就不附上了,下面给出几点比较重要的东西:
1. 第一页默认选择“Internet”下载所需要的组件
2. 第二页选择安装目录的时候,安装的根目录不能够含有中文,下面选择默认的为所有人赋予使用权限(当然Doge没有尝试过中文目录会有怎样神奇的现象)
3. 第三页是你的安装程序所在的目录,如果没有移动过你的安装程序,请不要修改,保持默认
4. 第四页默认选择直接连接
5. 第五页选择镜像,浙大内的小伙伴们推荐选择中科大的镜像:http://mirrors.ustc.zju.edu.cn 其他读者可以选择默认的第一个镜像
6. 之后是最重要的一步,就是选你你所要添加的组件(Packages),下面是Doge在电脑上装的一些组件,仅供参考,其中你打字输入的时候会出现许多候选项,注意根据名字和后面的英文介绍来判断要选择哪些组件,正常情况下选择不带额外前缀或者后缀的组件(比如 cmakemake):
aaaa• gcc-core(编译的内核)
aaaa• make
aaaa• libmysqlclient-devel(链接mysql数据库的相关组件)
aaaa• vim (optional)(vim大法好,虽然我是sublime的拥趸)
aaaa• gtk+3.0(如果你只是需要C语言编写图形界面的话,注意不要选到gtk+3.0与web有关的东西)
aaaa• xinit(非常重要,因为它是用于驱动图形程序的)
7. 然后慢慢等待Cygwin安装完成即可
Cygwin中的操作与Linux的命令行操作基本类似,如果有疑问的完全可以查阅Linux的相关书籍。如果想要给Cygwin添加组件的话依旧是运行安装程序,然后前面所有的路径保持不变,只是在添加组件那一步把需要添加的组件添加进去即可,非常方便。

环境设置以及编译
aaaa安装完上述的Cygwin之后,可以通过打开Cygwin并在命令行中输入以下语句来判断是否已经安装完成:

$gcc --version$make --version$mysql_config --version$pkg-config gtk+-3.0--cflags --libs

aaaa如果上述所需要的组件都已经确认完毕之后,就可以开始我们的图形化C的编程了。使用vim创建我们的第一个图形化界面程序Hello.cvim的相关操作可以百度):

#include <gtk/gtk.h>                                //关联图形库int main(int argc, char* argv[]){  GtkWidget* window;                                //创建图形窗口  GtkWidget* label;                                 //创建  gtk_init(&argc, &argv);                           //初始化图形驱动  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);     //创建图形顶层画布  label = gtk_label_new("Hello World.");            //创建新的标签  gtk_container_add(GTK_CONTAINER(window), label);  //关联画布和标签  gtk_widget_show_all(window);                      //显示驱动程序  gtk_main();                                       //显示画面  return 0;}//注:此程序来源于转载

aaaa然后再编译的时候采用下面语句:(注意“ ` ”符号是半角输入状态下的“ Esc ”下面那个键)

$gcc -Wall Hello.c -o Hello `pkg-config gtk+-3.0 --cflags --libs`

aaaa这个时候输入ls能够看到现在的目录下面多了一个叫做Hello.exe的文件。但是这个时候运行它会出现:

Gtk-WARNING **: cannot open the display.

aaaa这是因为我们使用现在条件下编译形成的可执行文件并不能够驱动图形程序。这就是我们为什么需要在上面安装组件的时候安装xinit的原因。在命令行中输入:

$startxwin

aaaa这个时候按照正常情况会弹出一个新的Terminal窗口(但是Doge表示就没有),这个窗口是xwin窗口。如果没有出现这个新的窗口的话,看一下你的任务栏,里面会有一个图标为很大的X的进程,右键选择,然后单击里面的Terminal选项就会帮你建立一个新的xwin窗口。然后再新建立的这个xwin窗口中执行下面语句:

$./Hello.exe
aaaa这个时候你就能看到任务栏里面多了一个程序,因为我们创建的画布非常小,所以新的窗口程序非常小,可能需要你仔细找一找了,下面附上成功编译并运行的成果:
运行效果图

aaaa其中左边的窗口就是xwin窗口,右边的窗口就是我们正常使用时候用的Cygwin

aaaa最后如果还有什么问题的话,欢迎评论留言。

0 0
原创粉丝点击