CodeBlocks 16.01+wxWidgets 3.03配置

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有如下信息:

1
2
3
4
5
6
7
8
9
C:\Users\Administrator>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=F:/Program\ Files\ (x86)/CodeBlocks/MinGW/bin/../libexec/gcc
/mingw32/4.9.2/lto-wrapper.exe
Target: mingw32

Thread model: posix
gcc version 4.9.2 (tdm-1)

看最末尾那行gcc version是4.9.2那么就是成功配置了。wxWidgets对编译器的版本也有要求的,如果是新手,建议使用CodeBlocks自带的编译器。

4# 编译wxWidgets 3.0.3

在命令进入wxWigets的build/msw文件夹,例如我的是F:\wxWidgets-3.0.3\build\msw这个路径

1
2
F:
cd F:\wxWidgets-3.0.3\build\msw

接下来就是make了。

编译命令如下:

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

这里使用开两个线程来编译,加入参数-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# 正常使用

接下来可以随意使用了。

坚持原创技术分享,您的支持将鼓励我继续创作!