Windows 下使用GNU开发环境http://www.hebl.name/zh/archives/gnuwin32-dev.html

2005-4-22 GNU/Linux, 軟件技術

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>

  1. int main(int argc, char *argv[])
  2. {
  3. Gtk::Main kit(argc, argv);
  4. Gtk::Window window;
  5. Gtk::Main::run(window);
  6. return 0;
  7. }

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

C:\>pkg-config gtkmm-2.4 –cflags –libs

  1. C:\>-ID:/GTK/include/gtkmm-2.4 -ID:/GTK/lib/gtkmm-2.4/include
  2. -ID:/GTK/include/glibmm-2.4 -ID:/GTK/lib/glibmm-2.4/include
  3. -ID:/GTK/include/gdkmm-2.4 -ID:/GTK/lib/gdkmm-2.4/include
  4. -ID:/GTK/include/pangomm-1.4 -ID:/GTK/include/atkmm-1.6
  5. -ID:/GTK/include/gtk-2.0 -ID:/GTK/include/sigc++-2.0
  6. -ID:/GTK/lib/sigc++-2.0/include -ID:/GTK/include/glib-2.0
  7. -ID:/GTK/lib/glib-2.0/include -ID:/GTK/lib/gtk-2.0/include
  8. -ID:/GTK/include/pango-1.0 -ID:/GTK/include/atk-1.0
  9. -LD:/GTK/lib -lgtkmm-2.4-lgdkmm-2.4 -latkmm-1.6 -lgtk-win32-2.0
  10. -lpangomm-1.4 -lglibmm-2.4 -lsigc-2.0 -lgdk-win32-2.0 -latk-1.0
  11. -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lgobject-2.0
  12. -lgmodule-2.0 -lglib-2.0 -lintl -liconv

最好编一个Makefile

# Test.cc Makefile

  1. SRC=base.cc
  2. LIBS=-ID:/GTK/include/gtkmm-2.4 -ID:/GTK/lib/gtkmm-2.4/include
  3. -ID:/GTK/include/glibmm-2.4 -ID:/GTK/lib/glibmm-2.4/include
  4. -ID:/GTK/include/gdkmm-2.4 -ID:/GTK/lib/gdkmm-2.4/include
  5. -ID:/GTK/include/pangomm-1.4 -ID:/GTK/include/atkmm-1.6
  6. -ID:/GTK/include/gtk-2.0 -ID:/GTK/include/sigc++-2.0
  7. -ID:/GTK/lib/sigc++-2.0/include -ID:/GTK/include/glib-2.0
  8. -ID:/GTK/lib/glib-2.0/include -ID:/GTK/lib/gtk-2.0/include
  9. -ID:/GTK/include/pango-1.0 -ID:/GTK/include/atk-1.0
  10. -LD:/GTK/lib -lgtkmm-2.4-lgdkmm-2.4 -latkmm-1.6 -lgtk-win32-2.0
  11. -lpangomm-1.4 -lglibmm-2.4 -lsigc-2.0 -lgdk-win32-2.0 -latk-1.0
  12. -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lgobject-2.0
  13. -lgmodule-2.0 -lglib-2.0 -lintl -liconv-mwindows
  14. test.exe:$(OBJS)
  15. g++ -o textview.exe $(SRC) $(LIBS)

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

如何在配置Windows下的GTK+开发环境 作者:兔毛猫 链接:http://www.2maomao.com/blog/how-to-gtk-dev-on-windows/The following search terms have been highlighted: gtk windows 开发Other posts matching your search:

  • 无奈的Dell为流氓软件檫屁股 - QQ2006 Beta2
  • WinNT/XP/2000 系统服务进程功能详述
  • Windows Mobile:模拟器(Device Emulator)如何联网?
  • Windows命令行奇技淫巧之 Sleep
  • VS2005上PPC 5.0 sdk不能建项目,解决方案

这里。

如果英文还可以的,到GTK的老巢看看说明就行了。

好,和我差不多的看官,下面开始介绍,以2.1x为例,其他的版本请自行到GTK的老巢翻找

总共需要:gtk以及其支持库,unixutils(make程序),gcc for windows(MinGW),后面两个不介绍了,自己找资料,下载后记得加入系统的PATH变量里

0. 打开gtk的下载页面:http://www.gtk.org/download/

1. hoho,有3个ftp链接,分别是:、、

2. 首先用ftp工具(没有的话下载一个filezilla看看)匿名登录GTK+ Source所在的那个ftp地址: (限制连接数,请勿用ie打开)

3. 因为是windows系统,windows现在的主流还是win32,进入win32目录

4. 对,你看到了一堆的东西,包括cario / cairo-dev / gtk+ / gtk+-dev,各找个最新的下载下来

5. 然后,进入dependencies目录,霍霍,这里更多

6. 别客气,里面的atk / atk-dev / gettext / gettext-dev / libiconv / libjpeg / libpng / libtiff / libxml2 / pkg-config / zlib123-dll,捡最新的都下载下来吧

7. 好了,现在重复2-6,下载Pango和GLib所在的ftp目录下的win32及win32\depenencies目录下的东东,记住三个关键字:win32, dependencies, 还有“最新”的, “-dev” 也不放过

8. 好了好了,真的好了,把这些下载的文件全部解压到一个目录下,比如d:\system\gtkplus目录

9. 还差一点点就可以开始了,别忘了我们最终编写的程序还要有运行时支持,就像MFC也有mfcxxx.dll一样,gtk+需要GTK+运行库的支持,懒一点儿的下载这个(如果还有效的话),想稳定的到这里去找找下载吧:http://sourceforge.net/projects/gimp-win/,嫌太慢的话就搜搜google

10. 好,下载并安装完gtk+runtime(我用的是gtk+-2.10.13-setup.exe)以后,开始编写Hello world

————————编写Hello World健体强国,Oh Yeah! 分割线————————

1. 首先写个hello.c,里面的内容是

下载: hello.c#include <gtk/gtk.h>
static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data )
{
   g_print ("delete event occurred\n");
   return FALSE;
}
static void destroy( GtkWidget *widget, gpointer data )
{
   gtk_main_quit ();
}
int main( int argc, char *argv[] )
{
   GtkWidget *window;
   GtkWidget *label;
   gtk_init (&argc, &argv);
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (delete_event), NULL);
   g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (destroy), NULL);
   label = gtk_label_new ("Hello GTK");
   gtk_container_add (GTK_CONTAINER (window), label);
   gtk_container_set_border_width (GTK_CONTAINER (window), 10);
   gtk_widget_show (label);
   gtk_widget_show (window);
   gtk_main ();
   return 0;
}

(为了缩短篇幅删去了所有注释和空行,完整版本参见后面参考资料里面的内容)

2. 好的,为了简单起见,不依赖任何开发环境,咱来写个makefile

gtk_include=-IE:/system/gtkplus/include -IE:/system/gtkplus/lib/gtk-2.0/include -IE:/system/gtkplus/include/gtk-2.0 -IE:/system/gtkplus/include/atk-1.0 -IE:/system/gtkplus/include/pango-1.0 -IE:/system/gtkplus/include/glib-2.0 -IE:/system/gtkplus/include/cairo -IE:/system/gtkplus/lib/glib-2.0/include

gtk_lib=-LE:/system/gtkplus/lib -lcairo -lintl -lgettextpo -lglib-2.0 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lgdk_pixbuf-2.0 -lgdk-win32-2.0 -lgtk-win32-2.0 -lcharset -liconv -lpango-1.0 -lpangoft2-1.0 -lpangowin32-1.0 -lpangocairo-1.0 -lzdll -latk-1.0

#target_dir=Debug

main: hello.c
gcc -mms-bitfields -Wall -g hello.c -o hello \
${gtk_include} ${gtk_lib}

all:
${MAKE} main

注意事项:
a). 这里我的目录是e:\system\gtkplus,你解压的目录可能不一样
b). “gtk_lib=” 后面的”L”后跟的是gtk lib根目录,然后后面的小写的’l'对应该根目录下面所有的.lib文件,一一排好队,中间空格隔开
c). “gtk_include=” 后面的是所有包含.h文件的文件夹,前面加个”-I”,也来排好队,中间空格隔开
d). 注意makefile要用tab不要用空格
很繁琐吧,试试这个:windows下编译gtk文件的简单方法

3. 好啦,都有了,把hello.c和makefile放在同一个目录下,打开一个命令行进入该目录,敲入”make”,回车(没有make程序?到前头翻翻是否下载了unixutils和gcc for windows)

结果出来了,运行了hello.exe会看到这个界面:

恭喜,你成功了?什么?还没搞定,rp太差了吧~~~~ :D

参考资料:
1、GTK+ 开发简介
2、在Windows 下以GTK+ 撰写视窗程式安装GTK+

八月 01st, 2007 | 分类: 编程随笔, 小小工具 | 阅读(4276) | |

转载于:https://blog.51cto.com/axlrose/1292573

Windows 下使用GNU开发环境[转]相关推荐

  1. windows下关于Objective-C开发环境的配置

    最近IOS一直很火,也想学习以以下OC开发,一般装个虚拟机,然后装个mac,我相信大多数人的机子跑不起来或者很卡,所以之前借鉴了一个文章,就是关于在windows下配置OC开发环境,这里我把自己的安装 ...

  2. Windows下安装Objective-C开发环境

    Windows下安装Objective-C开发环境 1.首先用GNUstep在windows下模拟object c开发环境. 官方网址:http://www.gnustep.org/ 百度云下载: 链 ...

  3. Windows下配置IDEA开发环境

    Windows下配置IDEA开发环境 文章目录 Windows下配置IDEA开发环境 安装JDK 查看JDK是否安装 下载JDK 配置环境变量 安装IDEA 下载IDEA 安装IDEA 初始化IDEA ...

  4. Windows下搭建ESP-IDF开发环境,适合ESP32/S2/C3/S3系列模组二次开发

    前言 本教程适用于以下两种用户: ①无Linux环境搭建经验或搭建Linux开发环境不成功: ②使用安信可windows一体化环境IDE V1.5开发环境搭建不成功: 本教程提供了windows下搭建 ...

  5. Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种...

    2019独角兽企业重金招聘Python工程师标准>>> 今天为在Windows下建立PHP开发环境,在考虑下载何种PHP版本时,遭遇一些让我困惑的情况,为了解决这些困惑,不出意料地牵 ...

  6. windows下搭建iphone开发环境

    在windows下搭建iphone开发环境,我是这样做的. 1. 安装虚拟机,并且在虚拟机中安装mac os: 2. 启动虚拟机的mac os, 然后安装 iphone sdk. 具体请参考以下几篇文 ...

  7. Windows下Ionic Android开发环境搭建

    转自 http://www.itwap.net/ArticleContent.aspx?id=26 来源: itwap.net 作者: 词略 时间: 2015-4-2 16:57:28 (一)Ioni ...

  8. 乐鑫Esp32学习之旅② 巧用eclipes编辑器,官方教程在Windows下搭建esp32开发环境,打印 “Hello World”。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  9. 一、C++基础入门之 Windows下C/C++开发环境配置

    Windows 下 C/C++开发环境的配置:(51开源时代) 我的系统是Windows的,所以在这里我以Windows为例,我使用的是微软提供的VS2013(Microsoft Visual Stu ...

最新文章

  1. Spring 2.5:Spring MVC中的新特性
  2. 驱动设计的思想:面向对象/分层/分离
  3. MATLAB从入门到精通-控制系统动态特性的计算以及阶跃响应波德图等
  4. Android之提示A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
  5. openshift安装_云幸福–如何在几分钟内安装新的OpenShift Container Platform 3.7
  6. 《修改代码的艺术》读书笔记一
  7. python中函数包括标准库函数吗_Python标准库:内置函数divmod(a, b)
  8. 前端笔记 | CSS基础
  9. C++ - 操作运算符
  10. 【原】Web Polygraph 安装
  11. 百度日语输入法快捷键(baidu type)
  12. linux下国产达梦数据库的命令行安装
  13. 数据库存储时间时区UTC,如何转换为北京时区
  14. C++STL算法equal(15)
  15. java泛型类型推断_Java 泛型-类型推断
  16. 编译android版本protobuf
  17. 思维方式-《学会提问》书中的精髓:批判性思维是人类对抗人工智能的最后阵地。
  18. 布尔-施罗德逻辑代数中的命题逻辑-- 布尔逻辑之七(尾篇**)
  19. 第10章 Spark(全面解读Spark架构体系)
  20. 如何确保数据完整性?

热门文章

  1. 服务器上把计算机放桌面,远程服务器这么显示在电脑桌面
  2. oracle按照时间点回退,【Oracle】查看事务回滚的时间
  3. pythonnumpy详解_Python:Numpy详解
  4. 英语总结系列(二十一):英语也能玩出新花样
  5. 国内首批AI专业毕业生创办的澎思科技,已完成Pre-A轮融资
  6. 飞步神速!何晓飞团队完成无人车深度学习芯片流片,算力创国内新高
  7. 无人车是怎样一步步学会开车的? | 自动驾驶科普
  8. vue 父组件使用keep-alive和infinite-scroll导致在子组件触发父组件的infinite-scroll方法...
  9. Python开发技术详解PDF
  10. 修改mysql root的秘密