Windows 下使用GNU开发环境

标签:

GNU/UNIX下面有大量的有意思的工具使用,而且功能强大,其中之一就是强大的GNU编译器GCC (GNU Compilers Collection),它包含有多个编译器。GTK+是Gnome环境下标准的图形库,也是一个比较强大的开发集,GTKMM则是GTK+的C++包装,可以使用标准的C++来开发Linux下的图形界面程序。

那么本文将介绍这几个开发环境如何在Windows下使用,好东西嘛,那就是应该在多个平台下都可以使用。

一、安装编译器GCC

在windows下使用GCC,我比较欣赏使用MingW,它安装也比较方便,主页地址在http://mingw.sf.net,可以直接下载安装包进行安装,目前最新版是3.4.2,可以在下载界面下载该版本的所有bin版文件,下载到一个目录比如D:\MingW下后,然后将他们解压到当前目录下,这样大概的环境就可以了,然后安装一个MSYS和MSYS Developer Tool Kit,直接下载安装包,并且安装到D:\MingW目录下即可,然后设置环境变量,在WinXP下是右键点击“我的电脑”,打开“属性”,然后选取“高级”下的“环境变量”,在下面有个变量PATH,在它的值最前面加上“D:\MingW\bin;”就可以了,记着PATH变量的值是用分号隔开的。

还有就是make.exe需要另外安装,也是只要下载安装文件即可,它安装的的是mingw32-make.exe,把它改名成make.exe即可。

现在可以试着编译一个小的C/C++程序测试一下你的GCC是否工作正常?

二、安装GTK+

这个安装则是非常简单,在http://gladewin32.sourceforge.net/上下载gtk+-win32-devel 就行了,它包含有GTK+的整个开发库,还有Glade以及GTK+在Win32下的运行库。

下载完毕之后安装,默认是安装在C:\GTK下,当然你可以选择一个另外的地方。

三、安装GTKMM

同上面一样这个安装也简单,在http://www.pcpm.ucl.ac.be/~gustin/win32_ports/下载gtkmm-devel-2.6.1-1.exe,然后安装,这个最好安装在GTK+的同一个目录下。

四、测试一个简单的gtkmm程序

源码test.cc:

#include <gtkmm .h>

int main(int argc, char *argv[])
{
    Gtk::Main kit(argc, argv);

    Gtk::Window window;

    Gtk::Main::run(window);
    
    return 0;
}

再取一下编译环境变量$LIBS:

C:\>pkg-config gtkmm-2.4 --cflags --libs
C:\>-ID:/GTK/include/gtkmm-2.4 -ID:/GTK/lib/gtkmm-2.4/include 
-ID:/GTK/include/glibmm-2.4 -ID:/GTK/lib/glibmm-2.4/include 
-ID:/GTK/include/gdkmm-2.4 -ID:/GTK/lib/gdkmm-2.4/include 
-ID:/GTK/include/pangomm-1.4 -ID:/GTK/include/atkmm-1.6 
-ID:/GTK/include/gtk-2.0 -ID:/GTK/include/sigc++-2.0 
-ID:/GTK/lib/sigc++-2.0/include -ID:/GTK/include/glib-2.0 
-ID:/GTK/lib/glib-2.0/include -ID:/GTK/lib/gtk-2.0/include 
-ID:/GTK/include/pango-1.0 -ID:/GTK/include/atk-1.0  
-LD:/GTK/lib -lgtkmm-2.4-lgdkmm-2.4 -latkmm-1.6 -lgtk-win32-2.0
 -lpangomm-1.4 -lglibmm-2.4 -lsigc-2.0 -lgdk-win32-2.0 -latk-1.0 
-lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lgobject-2.0 
-lgmodule-2.0 -lglib-2.0 -lintl -liconv

最好编一个Makefile

# Test.cc Makefile

SRC=base.cc
LIBS=-ID:/GTK/include/gtkmm-2.4 -ID:/GTK/lib/gtkmm-2.4/include 
-ID:/GTK/include/glibmm-2.4 -ID:/GTK/lib/glibmm-2.4/include 
-ID:/GTK/include/gdkmm-2.4 -ID:/GTK/lib/gdkmm-2.4/include 
-ID:/GTK/include/pangomm-1.4 -ID:/GTK/include/atkmm-1.6 
-ID:/GTK/include/gtk-2.0 -ID:/GTK/include/sigc++-2.0 
-ID:/GTK/lib/sigc++-2.0/include -ID:/GTK/include/glib-2.0 
-ID:/GTK/lib/glib-2.0/include -ID:/GTK/lib/gtk-2.0/include 
-ID:/GTK/include/pango-1.0 -ID:/GTK/include/atk-1.0  
-LD:/GTK/lib -lgtkmm-2.4-lgdkmm-2.4 -latkmm-1.6 -lgtk-win32-2.0
 -lpangomm-1.4 -lglibmm-2.4 -lsigc-2.0 -lgdk-win32-2.0 -latk-1.0 
-lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lgobject-2.0 
-lgmodule-2.0 -lglib-2.0 -lintl -liconv-mwindows 

test.exe:$(OBJS)
        g++ -o textview.exe $(SRC) $(LIBS)

然后make一下,没有其他差错的话就会产生一个test.exe,看一下是否可以正确运行。