codeblocks17.12+wxWidgets3.1.0配置

1.下载wxWidgets

https://www.wxwidgets.org/downloads/

codeblocks17.12+wxWidgets3.1.0配置

选7z的源码格式下载,自己编译

codeblocks17.12+wxWidgets3.1.0配置


2.配置好codeblocks和gcc编译器

3.打开命令行,定位到wxWidgets-3.1.0\build\msw目录下,

codeblocks17.12+wxWidgets3.1.0配置

codeblocks17.12+wxWidgets3.1.0配置

输入一下命令:

 清理:mingw32-make -f makefile.gcc clean

 编译Release版本:mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release

 编译Debug版本:mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug

编译时间较长,耐心等待

参数含义:

BUILD控制wxWidgets生成的版本:调试版本(BUILD=debug)或者是发布版本(BUILD=release)。绝大多数情况下你只需要wxWidgets的发布版本就可以了,因为你应该不想要去调试wxWidgets自身,同时你依然可以通过链接wxWidgets的发布版本来构建你自己的程序的调试版本。


- 调试构建wxWidgets会创建带有”d”后缀的库,例如”libwxmsw28d.a”、”wxmsw28d_gcc_custom.dll”。


- 调试构建wxWidgets会在wxWidgets库的输出目录中创建”mswd” 或者 “mswud” 目录。


- 发布构建wxWidgets创建的库没有”d”后缀,例如”libwxmsw28.a”、”wxmsw28_gcc_custom.dll”。


- 发布构建wxWidgets会在wxWidgets库的输出目录中创建”msw” 或者 “mswu” 目录。


SHARED控制wxWidgets是构建DLL(SHARED=1)还是静态库(SHARED=0)。利用构建的DLL,主程序构建时间较快,可执行文件更小。但是可执行文件加上wxWidgets DLL的总大小更大,但是不同的可执行文件可以使用同一个DLL。


- wxWidgets的DLL构建会创建导入库(如 libwxmsw28.a)以及DLL文件(如wxmsw28_gcc_custom.dll)。你必须在发布你的程序的时候包含这个DLL。


- wxWidgets的静态构建只会创建静态库(如 libwxmsw28.a),发布的时候也无须包含wxWidgets的DLL。


MONOLITHIC控制是构建一个单一的库(MONOLITHIC=1)还是多个组件库(MONOLITHIC=0)。使用单一构建,项目的设置和开发会更加简单,如果你同时使用DLL构建的话,你只需要分发一个DLL文件。如果使用非单一构建(multilib),会构建出多个不同的库同时你可以避免将整个wxWidgets的基本代码链接到主程序,就可以去掉不需要的库。同时你也必须确保你选择了正确的组件库。


- wxWidgets的单一构建仅会创建一个wxWidgets导入库(如libwxmsw28.a)以及一个DLL(如wxmsw28_gcc_custom.dll)。


- wxWidgets的多库(multilib)构建会创建多个导入库(libwx28_base.a等)以及多个DLL文件。


- 无论何种wxWidgets构建,都会创建额外的静态库(如libwxexpat.a、libwxjpeg.a等)。这些库对于wxWidgets的DLL构建一般是不需要的,但是当使用静态构建的时候,则是必须的。


UNICODE控制wxWidgets以及你的程序是否使用支持Unicode的宽字符串。大多数Windows 2000或更高系统上的应用程序都应该支持Unicode。早期的Windows版本不一定有Unicode支持。你应该总是使用wxWidgets的_("string")和_T("string")宏来确保硬编码的字符串编译时是正确的类型。


- wxWidgets的Unicode(UNICODE=1)构建将会创建带有”u”后缀的库,例如”libwxmsw28u.a”、”wxmsw28u_gcc_custom.dll”。


- wxWidgets的Unicode构建会在wxWidgets库的输出目录中创建”mswu”或”mswud”目录。


- wxWidgets的ANSI(UNICODE=0)构建创建的库没有”u”后缀,例如”libwxmsw28.a”、”wxmsw28_gcc_custom.dll”。


- wxWidgets的ANSI构建会在wxWidgets库的输出目录中创建”msw”或”mswd”目录。

3.新建一个wxWidgets工程

codeblocks17.12+wxWidgets3.1.0配置codeblocks17.12+wxWidgets3.1.0配置codeblocks17.12+wxWidgets3.1.0配置

输入信息,可以略过

codeblocks17.12+wxWidgets3.1.0配置codeblocks17.12+wxWidgets3.1.0配置

选择wxWidgets的目录

codeblocks17.12+wxWidgets3.1.0配置

codeblocks17.12+wxWidgets3.1.0配置

有许多配置选项。在第一个选项中,你需要保证这个选项和你构建wxWidgets时使用同样的选项

Use wxWidgets DLL, 如果你构建时SHARED=1,请选择该项。

wxWidgets is built as a monolithic library, 如果你构建时MONOLITHIC=1,请选择该项。

Enable unicode,  构建时UNICODE=1,请选择该项。

刚才的命令:mingw32-make -f makefile.gcc MONOLITHIC=0 SHARED=1 UNICODE=1 BUILD=debug

codeblocks17.12+wxWidgets3.1.0配置

确保Use __WXDEBUG__ and Debug wxWidgets lib 选项不被选中

codeblocks17.12+wxWidgets3.1.0配置

直接点完成

codeblocks17.12+wxWidgets3.1.0配置

编译时报错,因为数据库相关的在刚开始编译时是不会包含的,只需要在设置里面删除掉就可以了

codeblocks17.12+wxWidgets3.1.0配置

在Project->Project build options中删除

codeblocks17.12+wxWidgets3.1.0配置

再次编译就可以运行了

codeblocks17.12+wxWidgets3.1.0配置