0. 基础知识
建议在观看视频前,先简单阅读以下准备内容。
0.1 简单介绍wxWidgets
教学使用的是wxWidgets 2.x版本中的最高版本2.8.12。
wxWidgets本身已经有 3.x 的版本,并且个别地方无法向下兼容,但在GUI原理与主要知识,二者没有本质变化。
wxWidgets官方提供了已经编译好的二进制库,但使用的是微软的C++编译器,而不是我们上一节课准备的GCC,所以我们需要下载源代码自行编译。
下载源代码自行编译的事,对一个C++编程人员往往是“跑不掉”会遇上的,所以本节课主要任务虽然是编译出wxWidgets,次要任务是大体了解“从源代码构建出二进制库”的基本过程。
0.2 下载
下载关键信息项:
- wxWidgets 官网: https://www.wxwidgets.org/
- wxWidgets 源代码压缩包下载地址: https://github.com/wxWidgets/wxWidgets/releases/download/v2.8.12/wxWidgets-2.8.12.tar.gz
0.3 修改 mingw-w64 头文件
视频中提及的,需要修改的文件为:
C:\cpp\mingw-w64-32bit\mingw32\i686-w64-mingw32\include\commctrl.h
其中:
- C:\cpp 是你在第一节课准备的文件夹;
- mingw-w64-32bit 也有可能多出一个32:mingw32-w64-32bit,具体看你在上一节课,是不是也和“将错就错”用了这个目录名字。
commctrl.h内,待修改的是第4017行:将在该行大于号后面,加上等号,即 > 改为 >=。
0.4 编译 (有新增内容)
以下是新增内容:
请结合书本内容和视频教学完成;除了需要在一开始 修改 config.gcc 文件时,多加一个配置:
在视频频所讲的,将 config.gcc 文件中的“UNICODE ?= 0” 修改为 “UNICODE ?= 1” 之后,请再往上找到 CPPFLAGS,将该行原来的 “CPPFLAGS ?= ” 后面加上 “-Wno-narrowing”, 成为:
CPPFLAGS ?= -Wno-narrowing
如图:
修改后,切记一定记得Ctrl+S保存config.gcc文件,否则也可能编译失败。
gcc升级后,对某些警告似乎升级为直接报错了。本处是因为 int 类型的负数强制转换为unsigned long (无符号长整数)类型。
新增内容结束 。