教程摘自网上各大博客、贴吧、论坛,结合自己的实践做了一些实质性的修改。
一、安装
首先从http://sourceforge.net/projects/wxwindows/files/2.8.12/wxMSW-2.8.12-Setup.exe/download上下载wxWidgets2.8.12。
建议将其安装某个驱动器的根目录下,比如:E: wxWidgets-2.8.12 目录下(尾部数字以您所使用的wxWidgets版本为准)。
二、编译
上一步安装wxWidgets,仅得到源代码文件及一些说明。我们还需要将其中的源代码编译成“库”文件。
今天我们将把wxWidgets编译译成四种形式:
动态链接库 + 调试版
动态链接库 + 发行版
静态链接库 + 调试版
静态链接库 + 发行版
正式开始编译之前,必须确保已经在电脑上正确安装好mingw32环境,安装C::B时选择MINGW版,就会在C::B目录下安装MINGW编译器。
并保证环境变量设置好:
右击我的电脑→属性→高级系统设置→环境变量→选择path变量(如果没有的话新建path变量)
→编辑path变量(不同的变量值之间用;隔开)→在变量值中输入“E:CodeBlocksMinGWin;E:CodeBlocksMinGWinclude;E:CodeBlocksMinGWlib;”(如果你的MINGW安装路径不同,求按照你的路径输入)
(以下四个版本都需要编译,而不是仅编译其一)
(1)静态链接(调试版)
步骤1:用记事本打开wxWidgets安装目录下,子目录“buildmsw”下面的“config.gcc”文件。
步骤2:找到以下内容,并确保将等号(?=)后面的值如下面内容所示。另外其它未指部分的内容,请保持不变。
步骤3:请确认保存了本步的修改成果,再继续下一步。
# What type of library to build? [0,1]
SHARED := 0
# Compile Unicode build of wxWidgets? [0,1]
UNICODE := 1
# Type of compiled binaries [debug,release]
BUILD := debug
步骤4:
SHARED 为 0表示要编译的是静态库,而不是动态库;
UNICODE为1,表示要编译成UNICODE版本,这一项在本次编译过程中始终为1。
BUILD为debug,表示要编译成含有调试信息的版本。
步骤5:
打开“开始”菜单,选择“运行”,输入cmd,进入控制台窗口,然后在其内通过cd命令,切换到wxWidgets安装目录下的“buildmsw”路径。比如您把wxWidgets
安装在“E:wxWidgets-2.8.12”,则过程如下:
E: (回车)
cd wxWidgets-2.8.12(回车)
cd buildmsw (回车)
步骤6:在第5步的控制台中,继续输入以下命令:
mingw32-make.exe -f makefile.gcc (回车)
步骤7:这将开始一段长约30分钟的编译过程(视你的机器配置而定)。
(2)静态链接(发行版)
编译过程和前一版本主要差别在于“config.gcc”文件的修改内容:
# What type of library to build? [0,1]
SHARED := 0
# Compile Unicode build of wxWidgets? [0,1]
UNICODE := 1
# Type of compiled binaries [debug,release]
BUILD := release
其它操作方法不变。
(3)动态链接(调试版)
编译过程和前一版本主要差别在于“config.gcc”文件的修改内容:
# What type of library to build? [0,1]
SHARED := 1
# Compile Unicode build of wxWidgets? [0,1]
UNICODE := 1
# Type of compiled binaries [debug,release]
BUILD := debug
其它操作方法不变。
(4)动态链接(发行版)
编译过程和前一版本主要差别在于“config.gcc”文件的修改内容:
# What type of library to build? [0,1]
SHARED := 1
# Compile Unicode build of wxWidgets? [0,1]
UNICODE := 1
# Type of compiled binaries [debug,release]
BUILD := release
其它操作方法不变。
三、结束
这是一次漫长的编译过程,至此,我们完成了四个版本的wxWidgets库的编译。它是我们编写图形用户界面基础。
为了确保大家尽量顺利地完成编译,我们在“config.gcc”仅选择了最基本的编译选项。因此一些强大wxWidgets功能模块没有被编译成库,比如前面提到的非Unicode版,另外没有支持OpenGL、OBDC等功能。后面需要时,我们将会加上,并且令大家放心的是,这并不会带来又一次wxWidgets漫长完全编译。