wxWidgets初学者导引(2)——下载、安装wxWidgets

2 下载、安装 wx Widgets

这方面的资料从网络可以找到不少。 wx Widgets 的文档,要涵盖各种操作系统和编译环境,难免让人有点无所适从。这对初学者,是灾难。

以下文字,适合于大部分初学者的工作环境。为能边看边做,请确认:(1 )你用的是 Windows 操作系统(强烈建议初学者进阶后,适时开启 Linux 下开发的体验);( 2 )已经安装了 Code::Blocks (版本不限,但也别太低了);( 3 Code::Blocks 使用 gcc 编译器,随 Code::Blocks 的安装已经装好。

2.1  下载 wxWidgets

wxWidgets 的官网在 http://www.wxwidgets.org/downloads/ ,下载页面是 http://www.wxwidgets.org/downloads/

作为 Windows 用户,从下载页面下载如下画圈的两个文件。 Windows.ZIP wxWidgets 的源代码, Manual(HTML).zip 则是在学习过程中最重要的参考(即前述的在线文档)。在 4.2 节中,将专门介绍在线文档的使用。

 

下载后,将文件Windows.ZIP解压缩,下图是我解压缩后的结果,我将其解压到了F:/wxWidgets-3.0.0 中。后文中,我将用 X:/wxWidgets-3.0.0 表示这个文件夹, X 代表你选择的盘符。

 

2.2  为什么要自己编译 wxWidgets

一般的 Windows 应用程序,总是有一个安装程序(常常是 setup.exe ),只要运行这个程序,就可以将软件安装好。

wxWidgets 不是这样。下载得到的,不是能运行的程序,而是 wxWidgets 的源代码!开源软件提供给用户源代码,你可以直接阅读和修改。

不少开源软件也提供安装程序,用户安装后就可以使用。这是适用于软件的使用者的方式,而不是针对开发者的方式。

现在,你是开发者。作为开发者,常是下载源代码后,自己编译。这对于大众是高要求,但对专业人员,却是常用的套路。

wxWidgets 不是一般的应用程序,是为支持应用程序开发的平台。 wxWidgets 面对的是在不同操作系统( Linux unix Windows Mac OS )下工作的开发人员,他们使用的 C++ 编译器( GCC 家族、 MS 家族、 Borland 家族及其他各种)形形色色、版本各异。 wxWidgets 不便于提供各种组合下的安装程序。开发人员下载源码,自己编译自己用。这种方式,创建的是最适合自己的环境。

实际上,不这样做,往往得不到适合自己的开发环境。

所以,下面的步骤或许会有点挑战性。但不要有牢骚。这样做一遍,你作为开发者的成色,就更足一些。

实际上, wxWidgets 中还提供了一个称为 wxPack 的编译好的版本,可以用于直接安装。在我的体验中,最新的 wxPack 使用的 GCC 版本低了,安装顺利,但却不能正确运行在我的开发环境中写的程序。这种方法,不推荐使用。

2.3  编译 wxWidgets 前的准备

编译 wxWidgets ,要先准备好编译器,并且配置好运行编译器的“环境”。

对于初学者,安装 Code::Blocks 时,选择带 GCC 编译器的安装文件进行安装。单独安装的 GCC 编译器,也可以在 Code::Blocks 中通过设置进行工作。

总之先找到 Code::Blocks 所在的文件夹 ( 后文中我用“ X:\CodeBlocks\ ”代表, X:\CodeBlocks\ 要替换为你使用的实际文件夹名 ) 。随 Code::Blocks 安装的 GCC ,在 Code::Blocks 安装文件夹的 MinGW 子文件夹中,打开 X:\CodeBlocks\MinGW\bin ,其中的文件,如下图所示,就是支持你的 C++ 工作的 GCC 系列程序。

 

记下这个文件夹名(简单办法,将路径复制下来,暂时粘贴到一个文本文件中备用)。下面要配置运行编译器的“环境”,确切地说,只需要设置“路径”( PATH )即可。

Win7 中,鼠标右击桌面上的“计算机”图标,选菜单中的“属性”,接下来,就是如下图中从 1 6 的一系列操作,将“变量名”为 PATH 的“变量值”,在原有值的后面加一个英文的分号,再加入你记下的 X:\CodeBlocks\MinGW\bin 。注意,不要将原有的内容替换掉,而是追加你你需要的路径即可。

 

其他版本的 Windows ,找到“系统属性”对话框的方式可能会稍有不同,最终的目标都是设置好 PATH 的值。

还有别一种方式,直接用 DOS 命令做。有不少资料中讲这种做法,本文不做介绍。

2.4  编译 wxWidgets

编译 wxWidgets 的事情需要用命令行的方式完成。

2.4.1  用命令行编译 wxWidgets

从“开始”菜单 -> 附件,运行“命令提示符”(有的系统称“ MS-DOS 方式”),在命令行下分别输入下面的命令:

命令

解释

X:( 回车 )

当前盘置为 X X 是你解压缩 wxWidgets 用的盘符。

cd \wxWidgets-3.0.0\build\msw( 回车 )

当前目录置为 /wxWidgets-3.0.0\build\msw ,可以查看这个文件夹中的文件, msw 是专供微软 (ms) Windows(w) 用的编译需要的文件(注: wxWidgets C++ 源代码在 \wxWidgets-3.0.0\src 中)。

gcc -v( 回车 )

这个命令并非必须,意在检查刚才的路径设置是否正确。下图的输出,表明在 X:/wxWidgets-3.0.0\build\msw 目录中,可以运行 X:\CodeBlocks\MinGW\bin 中的命令。还可以看到,当前使用的 GCC 版本是 4.7.1

下图是我运行上表中的命令出现的结果:

 

下面就可以要开始编译 wxWidgets 了。就在 DOS 提示符后面,输入下面的命令:

mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug

编译的过程会比较慢,会有几十分钟。干点别的,或者就看着屏幕上看不懂的提示发呆也好。理想情况是,顺利完成编译。

2.4.2  意外处理

我在编译 wxWidgets 中,苦等几十分钟,等来了一个 error ,最后两行提示是:

gcc_mswuddll\monodll_xh_bmpcbox.o: file not recognized: Memory exhausted  
collect2.exe: error: ld returned 1 exit status

出现这种情况的,到 http://blog.csdn.net/sxhelijian/article/details/25749505 中的“问题 1 ”,看原因解释以及对策。

2.4.3  多知道一点

用上面的命令编译后,可以满足学习的需求了。如果还想体验,以及支持将来生产用于发布的程序版本,可以在SHARED和BUILD参数的选取上再做些组合。

  • SHARED的取值可以是 1 0 ,代表产生的是动态链接库( 1 )和静态链接库( 0 )。两者的区别不解释,以后将明白,或者自行百度之。
  • BUILD的取值可以是debug或 release ,代表在应用程序开发时,产生的可执行文件是 调试版本(debug)还是发布版本( release

所以可以运行的命令还有 3 个:

mingw32-make -f makefile.gcc  MONOLITHIC=1 SHARED=0 UNICODE=1 BUILD=debug
mingw32-make -f makefile.gcc  MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release
mingw32-make -f makefile.gcc  MONOLITHIC=1 SHARED=0 UNICODE=1 BUILD=release

关于这些参数的解释,参考 http://blog.csdn.net/sxhelijian/article/details/25749505 中的“问题 2 ”部分。

================= 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章的分类目录(不定期更新) ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
|== 我写的书——《逆袭大学——传给IT学子的正能量》    ==|
===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====
我来评几句
登录后评论

已发表评论数()

相关站点

热门文章