codeblocks17.12+wxWidgets3.1.0配置
1.下载wxWidgets
https://www.wxwidgets.org/downloads/
选7z的源码格式下载,自己编译
2.配置好codeblocks和gcc编译器
3.打开命令行,定位到wxWidgets-3.1.0\build\msw目录下,
输入一下命令:
清理: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工程
输入信息,可以略过
选择wxWidgets的目录
有许多配置选项。在第一个选项中,你需要保证这个选项和你构建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
确保Use
__WXDEBUG__ and Debug wxWidgets lib 选项不被选中
直接点完成
编译时报错,因为数据库相关的在刚开始编译时是不会包含的,只需要在设置里面删除掉就可以了
在Project->Project build options中删除
再次编译就可以运行了