1# 下载CodeBlocks 16.01和wxWidgets 3.0.3
CodeBlocks 16.01 下载地址:http://www.codeblocks.org/downloads/ wxWidgets 3.03 下载地址:https://www.wxwidgets.org/downloads/
最新的wxWidgets 3.1.0 但是这里面没有使用这个版本的原因是CodeBlocks 16.01是2016.01发布的,而wxWidgets 3.1.0是2016.02发布的,这个版本的CodeBlocks没有集成3.10的配置。如果非要用也行,要改项目工程文件的配置。
下载后得到两个文件:
- codeblocks-16.01mingw-setup.exe
- wxWidgets-3.0.3.zip
2# 安装CodeBlocks 16.01和解压wxWidgets 3.0.3
将CodeBlocks安装到F:\Program Files (x86)\CodeBlocks 将wxWidgets解压到F:\wxWidgets-3.0.3目录下 PS:其实这个随意,只要安装到找得到的地方就好。
3# 设置环境变量
在编译wxWidgets之前首先要设置一下MinGw环境变量,CodeBlocks 16.01中有自带gcc 4.9.2 这个版本的编译器。比如我的CodeBlocks装在F:\Program Files (x86)\CodeBlocks这个目录下,那么将;F:\Program Files (x86)\CodeBlocks\MinGW\bin;加入Path路径中,保存。注意:环境变量每个路径以分号分隔的,如果前面路径结尾已经有了分号,那么只需要一个分号。
在命令行下输入gcc –v有如下信息:
|
|
看最末尾那行gcc version是4.9.2那么就是成功配置了。wxWidgets对编译器的版本也有要求的,如果是新手,建议使用CodeBlocks自带的编译器。
4# 编译wxWidgets 3.0.3
在命令进入wxWigets的build/msw文件夹,例如我的是F:\wxWidgets-3.0.3\build\msw这个路径
|
|
接下来就是make了。
编译命令如下:
|
|
这里使用开两个线程来编译,加入参数-j2,以加快速度,第一次运行会直接提示出错,再运行同样的命令一次就不会出问题了。当然如果不加-j2,也没问题,以正常的速度编译。值得一说的是,可以开两个命令行窗口同时编译,运行上面命令。比如一个窗口编译release版本,一个窗口编译debug版本。速度也能大大加快。
还有其他的一些参数解释如下: BUILD BUILD控制wxWidgets构建调试版本(BUILD=debug)或者是发布版本(BUILD=release)。绝大多数情况下你只需要 wxWidgets的发布版本就可以了,因为你应该不想要去调试wxWidgets自身,同时你依然可以通过链接wxWidgets的发布版本来构建你自己的程序的调试版本。
SHARED SHARED控制wxWidgets是构建DLL(SHARED=1)还是静态库(SHARED=0)。利用构建的DLL,主程序构建时间较快,可执行文件更小。但是可执行文件加上wxWidgets DLL的总大小更大,但是不同的可执行文件可以使用同一个DLL。
MONOLITHIC MONOLITHIC控制是构建一个单一的库(MONOLITHIC=1)还是多个组件库(MONOLITHIC=0)。使用单一构建,项目的设置 和开发会更加简单,如果你同时使用DLL构建的话,你只需要分发一个DLL文件。如果使用非单一构建(multilib),会构建出多个不同的库同时你可 以避免将整个wxWidgets的基本代码链接到主程序,就可以去掉不需要的库。同时你也必须确保你选择了正确的组件库。
UNICODE UNICODE控制wxWidgets以及你的程序是否使用支持Unicode的宽字符串。
5# 配置CodeBlocks
编译好了以后还有在CodeBlocks上配置一下。
在Settings-->Global Variable Editor上Current Variable这个选项上New,输入wx。
然后设置下base、include和lib,例如我的wxWidgets安装位置是F:\wxWidgets-3.0.3

6# 进行测试
下面是新建工程测试。
有一个事情是必须记住的,要记住编译时的参数。
上面的命令一共编译了两个版本,release和debug版,在构建项目的时候,两个都可以勾选。而且,SHARED=0代表使用静态库,Use wxWidgets DLL不勾选,MONOLITHIC=1 表示使用单一的库,wxWidgets is build as a monolithic library就要勾选,同理UNICODE=1表示支持Unicode,这样Enable unicode也要勾选。








7# 正常使用
接下来可以随意使用了。