Windows10 64bit + CodeBlock16.01 + wxWidgets3.0.2配置

一、首先说一下配置的整体开发环境:

1.  windows 10 64位;

2. CodeBlock 16.01 64位安装版本,带mingw的codeblocks-16.01mingw-setup.exe,地址http://sourceforge.net/projects/codeblocks/files/Binaries/16.01/Windows/codeblocks-16.01mingw-setup.exe

3.  wxWidgets 使用 3.0.2版本,因为CodeBlock中对应的wxWidgets版本最高是3.0.X,所以没有选择最新的3.1.0,地址https://github.com/wxWidgets/wxWidgets/releases/download/v3.0.2/wxWidgets-3.0.2.zip

二、CodeBlock安装及环境配置

1.  CodeBlock按安装默认提示执行就行了,没有特别需要注意的;

2.  为了能够在命令行cmd下使用Codeblock附带的gcc编译工具mingw,需要在windows操作系统的环境变量path中提供Codeblock中mingw文件夹的位置。

3.   打开环境变量输入框:鼠标右键点击“我的电脑” -> “属性”->“高级系统设置”->右下方“环境变量”->“系统变量”-> 打开“Path”,在属性内容最后变添加英文半角的分号“;”之后加入mingw所在的实际物理地址(包括盘符)

三、wxWidgets编译

1.   解压下载后的wxWidgets文件在没有空格的路径下(中间最好别有中文字符文件路径);

2.   进入wxWidgets解压目录的\build\msw文件夹下(这个文件是专为windows版本编译的源文件),复制文件夹路径以便在命令行下切换到该文件路径进行编译;

3.   打开命令行,切换到对应的文件夹下;

4.   输入命令编译,建议的命令如下:

mingw32-make -f makefile.gcc CXXFLAGS="-std=gnu++11" MONOLITHIC=0 SHARED=1 UNICODE=1 BUILD= release

参数简单解释如下:

1)   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” 目录。

2)   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。

3)  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构建一般是不需要的,但是当使用静态构建的时候,则是必须的。

4)   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”目录。

5)  参数中的CXXFLAGS="-std=gnu++11"是因为wxWidgets3.0.2编译时会使用C++11语法特性,如果不添加会在编译过程中报错,如下图:

详细参数说明看文件 <wxWidgets安装目录>/build/msw/config.gcc 

详细安装说明看文件 <wxWidgets安装目录>/docs/msw/install.txt

编译时间比较长,大概每个半小时,视电脑速度定。

四、建立第一个wxWidgets工程

1.  设置wxWidgets编译需要的头文件和库文件路径,打开CodeBlocks,菜单 -> Setting -> Global variables...;

2.   在Current Set类型为default的设置下添加一个全局的wx变量指向wxWidgets安装目录,该变量在创建工程时使用,为的是wxWidgets安装目录变化之后只需更改此处;

3.   新建Project,选择wxWidgets project;

4.   Go -> 下一步,选择wxWidgets 3.0.x

5.   下一步,输入工程名、目录; 再下一步,作者等(可不填)

6.   下一步,选择GUI Builder,如果想完全自己编写代码就选None,如果想可视化界面,选wxSmith或wxFormBuilder,如果不知道要选哪个就选wxSmith吧;  Application Type分为Dialog和Frame,如果你用过其它GUI的话应该很清楚,不清楚的化Google吧

7.   下一步,选择wxWidgets位置,如果配制了第2步默认$(#wx)就OK,也可以直接选择wxWidgets安装目录

8.   下一步,选择GNU GCC Compiler或其它编译器,钩选Debug和Release

9.   下一步,选择你的wxWidgets构建选项。必须和你编译wxWidgets时所使用的选项一致!Use wxWidgets DLL用在编译时选择SHARE为1的选项下,wxWidgets is built as a monolithic library 用在编译时MONOLITHIC为1的选项下,Enable unicode使用在编译时UNICODE为1的情况下;

10.  选择下一步之前会根据编译的结果判断是否可以对wxWidgets源码编译出的内容进行调试,这里可以不关心提示,直接下一步即可;

11.  建立完毕,如下图,Resources下选择可进行可视化编辑,如想直接改代码,可切换到Projects下

12.  设置编译项目的相关属性,解决C++11编译、wxWidgets编译链接文件和库文件无法找到的问题,在工程项目project属性中编辑Compler settings 、 Linker settings 、Search Directories,让编译时项目可以编译C++11语法,找到wxWidgets的相关编译链接文件,头文件等,设置位置CodeBlocks -> Project –> Build options

(解决错误 fatal error: wx/setup.h: No such file or directory)

13.    编译运行,不出问题的话可出现下图结果:

转载于:https://my.oschina.net/ioooi/blog/776600

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值