CODE::BLOCKS+wxWidgets+MinGW+wxFormBuilder在windows下开发GUI程序
最近弄了个跨平台的gui平台,顺便把我的折腾过程给贴出来。
想起来弄这个,还是baidu的驱使,自从百度之星用MinGW之后,发现了这些相关联的一个系列。
一. 首先下载并安装MinGW,它是GCC编译器在windows下的版本,最新的集成了GCC 4.4.0版本
完整版下载(包含GCC,GDB,WIN32API等):
http://jaist.dl.sourceforge.net/sourceforge/tdm-gcc/tdm-mingw-1.905.0-4.4.0-2.exe
大小: 26.1 MB (27,318,983 字节)
安装时,不要放在中文目录下就行。最好是放在默认目录下。
二. 接着是IDE环境CODE::BLOCKS,它支持插件,最近发布了稳定版本。强大的功能使得我一用就感觉很爽。虽然没有VS那么强悍,但是比起它的体积,实在是非常强大。
安装程序下载:
http://jaist.dl.sourceforge.net/sourceforge/codeblocks/codeblocks-8.02-setup.exe
大小: 10.9 MB (11,371,920 字节)
安装好后,启动时会让你选在编译器,选择GCC后,它会自动找到MINGW的位置。这样基本不用任何设置,就可以编译普通的C++程序了。
三. 选择GUI平台
当然,我们需要开发GUI,我选择了wxWidgets。首先下载windows版本的。
下载地址:
http://jaist.dl.sourceforge.net/sourceforge/wxwindows/wxMSW-2.8.10-Setup.exe
大小: 12.3 MB (12,811,696 字节)
安装到某个目录后,需要编译它。网上很多资料的,方法如下:
1.首先添加mingw的bin文件夹位置到环境变量path;
2.然后,cmd到wxWidgets的build下的msw目录。如F:/wxWidgets-2.8.10/build/msw;
3.使用mingw32-make -f makefile.gcc BUILD=release UNICODE=1 SHARED = 1编译
等待1~N个小时后,可以在F:/wxWidgets-2.8.10/lib/gcc_dll目录下看到生成的dll文件,这样wxWidgets就已经配置好了。
四. 最后,安装wxFormBuilder,这个是可视化的窗口编辑器,和VC的用起来差不多。
最新版:
http://jaist.dl.sourceforge.net/sourceforge/wxformbuilder/wxFormBuilder_v3.0.57.exe
大小: 6.3 MB (6,579,640 字节)
安装完成后,继续下一步。
五. 开发第一个跨平台GUI
所有的东西都安装好后,启动CODE::BLOCKS,新建一个wxWidgets项目,按照提示进行操作:
其中会让你选择wxWidgets的版本,我的是2.8.X,然后是选择GUI builder,选择wxFormBuilder后继续,接着选择wxWidgets的目录,这里的目录是wxWidgets的安装根目录
,比如我的是F:/wxWidgets-2.8.10,下一步默认,然后到了如下界面
这个界面的设置和你的wxWidgets编译方式有关,第一个表示动态链接(编译时使用了SHARED = 1选项),第二个是表示编译的是单个大文件,第三个是unicode支持。根据我的编译方式,我的选择如图所示。
下一步后,会弹出一个对话框,提示没有找到debug版本,因为我没有编译wxWidgets,因为我不需要调试它,毕竟不是我开发的,点确定即可。我们在debug版本不使用debug的库即可。注意选中高级选项复选框。
在后面的界面中,注意不要选中Use __WXDEBUG__ and Debug wxWidgets lib的复选框。这样我们就可以使用程序的debug版本而不需要debug版本的wxWidgets库了。
finish完后,wxWidget的GUI程序就完成了,生成运行一下就出现常见的windows对话框程序了。至此,跨平台的GUI平台就搭建完毕了。
使用wxFormBuilder进行可视化的窗口编辑非常简单,在wxWidgets工程中会有一个fbp文件,在CODE::BLOCKS设置.FBP文件的打开方式为系统关联程序后,那么在CODE::BLOCKS双击fbp文件会自动打开可视化的编辑窗口,相当的方便啊。如下图: