原本是用MinGW作为开发环境的,可是用Gdb调试的时候,发现Gdb在MinGW环境中并不能良好运行,比如tab键的补齐就不行,尝试这自己编译了一版依旧如此,在MinGW官方网站上下载了最新的porting好的gdb7.0,结果情况更糟,比如gdb启动后,file [name]命令才能加载调试的文件。
后来考虑Cygwin了,也许有人会说为什么一开始不考虑Cygwin,理由很简单,Cygwin自带的Shell不能选择我钟爱的consolas字体,呵呵。还好,无意中看到国外一个小组做的一个Cygwin Shell emulator,支持右键菜单的快速复制,粘贴,Select, 资源管理器的shell等,当然了,还有自定义字体,名字叫做Mintty.
原本以为Cygwin搭建很简单,可是当装完了gcc等基本包后,发现不行,再网上搜了一圈,都是转载的文章,文章内容还一样,无奈,自己研究了,BS下那些到处转载,又不能实际解决问题的文章。
总结的最简单方法:
在Glade官方网站下载一个Glade&Gtk的exe安装包,安装在比如C:/Gtk+下。
然后安装Cygwin,确定安装了基本的Dev包,比如gcc, make至少要有。
下面就是重要的了,去pkg-config网站下载一个源码包,在Cygwin环境下编译一个,基本不会出错的, ./configure, make, make install,然后在Cygwin目录的usr/local/bin下会有pkg-config.exe,只要你没在config的时候加上自己的prefix参数,就是在这里找。
OK,这下,你在Cgywin的Bash环境下敲入pkg-config,就是你编译的那个(之所以这样说,因为你不自己编译的话,也会有此命令,只是那是GTK安装包里的,在这里我们要用自己编译的,不然之后编译GTK程序会失败)
然后在Cygwin目录的usr/local/lib目录里新建一个pkg-config目录,接着把C:/Gtk+的lib目录里的pkg-config文件夹内容copy过来,你要做的就是,把里面所有文件的第一行改成你的prefix=c:/Gtk+即可(其实就是指向Gtk相关库的目录),比如gtk+-2.0.pc。
然后,你就可以写自己的GTK+2.0程序了,然后写个简单的Makefie,比如我的文件时learn.c ,对应的Makefile内容如下:
gcc -Wall -g learn.c -o learn `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`
注意符号`是大键盘数字键的1左边的那个键。
这样,cygwin就能正常编译GTK程序,并且用gdb正常调试了。
PS:我第一次不知道哪里出错了,编译后运行显示can't display,出现这样的情况,需要在安装Cygwin时候,选上X11里的xinit,装上后,在cygwin的bin里会有startxwin.bat,点击运行,会启动Xwindow服务器,在Xwin里运行编译的程序就行了。造成这样的原因事,gcc生成的不是win32下的GTK,只要编译个MinGW的 gcc即可,但是,我之后再搭建就没遇到了,很奇怪。