目录
操作系统
windows 10
软件下载
Codeblock(mingw-setup版本):Binary releases - Code::Blocks (codeblocks.org)
wxWidgest(压缩免安装版):Downloads - wxWidgets
软件安装、准备
直接安装codeblock,本文安装路径 D:\Program Files\CodeBlocks
把wxWidgest解压缩出来,本文wxWidgest路径 D:\C++IDE\wxWidgets-3.1.7
环境配置
GCC配置。编译需要用mingw32-make命令,先将mingw所在目录加入系统环境变量Path中,默认基于CodeBlocks目录是:d:\Program Files\CodeBlocks\MinGW\bin
编译wxWidgets
打开cmd,进入D:\C++IDE\wxWidgets-3.1.7\build\msw,分别输入如下命令行:
清理:
mingw32-make -f makefile.gcc clean
编译Release版本:
mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=0 UNICODE=1 BUILD=release
编译Debug版本:
mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=0 UNICODE=1 BUILD=debug
以上CMD命令是需要进行前面所说的环境变量设置,如果没进行设置,可以使用绝地址"d:\Program Files\CodeBlocks\MinGW\bin\mingw32-make" (路径中间有空格的,注意用英文双引号括起来) 替换命令中的 mingw32-make运行。
等待漫长的时间。。。。。。。。。。完成!
可以体验以下指令
mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=0 UNICODE=1 BUILD=debug
mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release
mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=0 UNICODE=1 BUILD=release
SHARED的取值可以是1或0,代表产生的是动态链接库(1)和静态链接库(0)。两者的区别可自行百度。
BUILD的取值可以是debug或release,代表在应用程序开发时,产生的可执行文件是调试版本(debug)还是发布版本(release)。
参数说明 <wxWidgets目录>/build/msw/config.gcc
安装说明 <wxWidgets目录>/docs/msw/install.txt
第一个wxWidgets工程
1. 打开CodeBlocks软件,Setings -> Global variables...
2. 添加一个wx变量指向wxWidgets安装目录,这变量会在创建工程时使用,wxWidgets安装目录如有发生变化,只需更改此处
3. 新建Project,选择wxWidgets project,或者也可以选择Empry project,后面再手动加入依赖库
4. 下一步,选择wxWidgets 3.1.x(对应安装的wxWidgets版本)
5. 下一步,输入工程名、目录; 再下一步,作者等(可不填)
6. 下一步,选择GUI Builder选wxSmith; Application Type选Dialog。其它选择可自行百度了解。
7. 下一步,选择wxWidgets位置。a,如果配制了第2步默认$(#wx);b,直接选择wxWidgets安装目录
8. 下一步,选择GNU GCC Compiler或其它编译器,钩选Debug和Release
9. 下一步,选择你的wxWidgets构建选项。必须和你编译wxWidgets时所使用的选项一致!具体每个选项什么意思,可百度了解
6. 建立完毕,如下图,Resources下选择可进行可视化编辑,如想直接改代码,可切换到Projects下
Build and Run,不出问题的话可出现下图结果:
错误解决
1,提示fatal error: wx/setup.h: No such file or directory错误,直接改成wx/msw/setup.h即可
2,发生以下错误时 cannot find -|wxmsw31u等cannot find提示
修改build options ,清空linker setting里的所有,添加D:\C++IDE\wxWidgets-3.1.7\lib\gcc_dll\里需要用到的或所有