【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语言库
环境初始化
aaaaDoge在Windows
环境下配置了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在电脑上装的一些组件,仅供参考,其中你打字输入的时候会出现许多候选项,注意根据名字和后面的英文介绍来判断要选择哪些组件,正常情况下选择不带额外前缀或者后缀的组件(比如 cmake 和 make):
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.c
(vim
的相关操作可以百度):
#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最后如果还有什么问题的话,欢迎评论留言。
- 【GTK+3.0】C语言图形库GTK+3.0在Windows Cygwin下的环境配置(更新时间:2016-04-21)
- gtk+在windows下的编译环境
- gtk+3.0 windows配置
- Windows下GTK+的配置
- Windows下的Gtk+开发环境配置(vc)
- Windows下的Gtk+开发环境配置(vc)
- windows下GTK+的安装与环境配置
- 在windows下进行GTK+开发的环境搭建
- GTK+ 在windows和linux下的搭建环境 示例
- GTK学习笔记 - windows下的gtk开发配置
- 在Linux下,从头构建图形环境(TinyX + GTK)
- 在Redhat9下构建TinyX+GTK图形环境
- 关于Cygwin环境下快速搭建GTK+2.0开发环境的方法(原创)
- windows下搭建gtk+环境
- gtk在vc下的配置
- gtk+3.0的环境配置及基于gtk+3.0的python简单例子
- GTK+在windows环境下vs2008中调试使用
- 配置Windows下Android的NDK环境:安装,更新cygwin...
- 为何没有格点正三角形、正五边形和正六边形
- vim入门与常见操作
- jQuery实现动态添加删除输入框
- 【leetcode】67.Add Binary
- 关于maven自定义路径打包方法
- 【GTK+3.0】C语言图形库GTK+3.0在Windows Cygwin下的环境配置(更新时间:2016-04-21)
- L1-8. 求整数段和
- Eclipse配置Javascript开发环境图文教程
- wireshark抓取OpenFlow数据包
- SpringMVC利用AOP实现自定义注解记录日志
- 使用Echarts画图
- sql按小时统计信息量
- Python菜鸟学习手册15----多线程
- 一个关于ListCtrl响应事件获得所在行数的问题