wxWidgets 在 Windows 下开发环境配置
本文基于 CodeBlocks (16.01) 和 wxWidgets (3.0.2) 搭建 Windows 环境下 GUI 开发环境。
1. CodeBlocks 官网,下载最新版安装包 codeblocks-16.01mingw-setup.exe
此版本包含GCC,GDB,官网介绍为: NOTE: The codeblocks-16.01mingw-setup.exe file includes additionally the GCC/G++ compiler and GDB debugger from TDM-GCC (version 4.9.2, 32 bit, SJLJ).
我的安装目录: C:\Program Files (x86)\CodeBlocks, 后续编译要用到 CodeBlocks 内含的编译器,故将 C:\Program Files (x86)\CodeBlocks\MinGW\bin 添加到环境变量 Path。
2. wxWidgets 官网,下载源码包,各文档介绍如下图,

3. 解压缩 wxMSW-3.0.2.7z 到 C:\wxMSW-3.0.2, 在该目录下,新建 bat 文件 wxBuild_ver.0.1.bat, 内容如下,
@echo off
cd build/msw
title Compile wxWidgets
echo Start Compile ...
echo ---------------------------------------------------------------------
::echo Clean Env
::mingw32-make -f makefile.gcc clean
echo Compile Release Version
:: SHARED=0, Static Link Library. SHARED=1, Dynamic Link Library.
:: MONOLITHIC=0, Multiple Widgets. MONOLITHIC=1, Single Widgets.
:: UNICODE=0, Not Support Unicode. Unicode=1, Support Unicode.
mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=0 UNICODE=1
echo Compile Debug Version
mingw32-make -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=0 UNICODE=1
echo ---------------------------------------------------------------------
echo Compile Succeed.
pause
执行该文件,即可完成编译。 (各编译选项的详细解释,见本文最后的附录)
注意:
对于 wxWidgets 3.0.2 + CodeBlocks 16.02 (GCC 4.9.2) 的编译,在编译过程中遇到 C++ 2011 的兼容性问题, wxWidgets 官方给的解决方案在这里。
4. CodeBlocks 环境设置
打开 CodeBlocks, Settings -> Global variables... , 添加 wx 变量和路径如下图,

5. wx GUI 工程 demo
默认工程的运行结果如下,
至此,环境搭好了。
6. 最后的问题。
基于 MinGW-GCC 编译的程序,要依赖相关的 .dll 库运行,所以,把生成的 exe 文件拷贝到其它电脑,将出现以下错误,
解决方法,右键点击工程,选择 Build options,
分别将 Debug 和 Release 的 Linker settings 标签下的 Other Linker options 下添加 -static 链接选项。
重新编译工程。这样生成的 exe 即可脱离开发环境运行。
附录. 各编译选项的解释
BUILD 控制 wxWidgets 构建调试版本 (BUILD=debug)或者是发布版本(BUILD=release)。
- debug 构建 wxWidgets 会创建带有 ”d” 后缀的库,例如 ”libwxmsw28d.a”、”wxmsw28d_gcc_custom.dll”。
- debug 构建 wxWidgets 会在 wxWidgets 库的输出目录中创建 ”mswd” 或者 “mswud” 目录。
- release 构建 wxWidgets 创建的库没有 ”d” 后缀,例如 ”libwxmsw28.a”、”wxmsw28_gcc_custom.dll”。
- release 构建 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” 目录。
其他问题可参考 wxWidgets 开发者论坛
完。
wxWidgets 在 Windows 下开发环境配置的更多相关文章
- Python在Windows下开发环境配置汇总
最近比较关注学习Python方面的资料和课程,由于Python本身基本都是在Linux下开发,本人windows用习惯了初用Linux各种别扭啊. 下面将我在配置Windows环境下的禁言写出来,与大 ...
- wxWidgets 在 Linux 下开发环境配置
本文基于 CodeBlocks (16.0.1) 和 wxWidgets (3.0.2) 搭建 Linux 下 GUI 开发环境. 1. 安装 CodeBlocks Ubuntu 默认的源当前 Cod ...
- QT creator+OpenCV2.4.2+MinGW 在windows下开发环境配置
由于项目开发的原因,需要配置QT creator+OpenCV2.4.2+MinGW开发环境,现对配置方法做如下总结: 1. 下载必备软件 QT SDK for Open Source C++ de ...
- Windows 下 MSYS2 环境配置和 MinGW-w64 C++ 环境配置
Windows 下 MSYS2 环境配置和 MinGW-w64 C++ 环境配置 1.简介 本文主要是 Windows 下 MSYS2 环境配置和 MinGW-w64 C++编译环境配置方法 2.下载 ...
- windows phone7开发环境配置错误
遇到下面这样一个问题:在配置windows phoe7开发环境的时候出现如下错误,以及相应的解决方案,希望对大家有所帮助. 装完环境后出现下面错误: [caption id="attachm ...
- java入门---windows和Linux,UNIX,Solaris,FreeBSD下开发环境配置
首先来看Windows下的操作.我们需要下载java开发工具包JDK.下载地址:http://www.oracle.com/technetwork/java/javase/downloads/ ...
- 【并行计算-CUDA开发】Windows下opencl环境配置
首先声明我这篇主要是根据下面网站的介绍, 加以修改和详细描述,一步一步在我自己的电脑上实现的, http://www.cmnsoft.com/wordpress/?tag=opencl&pag ...
- Windows高效开发环境配置(一)
更多精彩内容,欢迎关注公众号:逻魔代码 前言 用了多年的 MacOS 做开发,一系列诸如 Alfred.Item2.Oh-my-zsh 之类的工具,大大地提升了工作的效率和使用舒适度.新工作不给配 M ...
- windows下 Rust 环境配置
搭建 Visual Studio Code 开发环境 首先,需要安装最新版的 Rust 编译工具和 Visual Studio Code. Rust 编译工具:https://www.rust-lan ...
随机推荐
- CSS3的媒体查询(Media Queries)与移动设备显示尺寸大全
媒体查询介绍 我今天就总结一下响应式设计的核心CSS技术Media(媒体查询器)的用法. 先看一个简单的例子: <link rel="stylesheet" media=&q ...
- POJ 2407Relatives
Relatives Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15566 Accepted: 7900 Descri ...
- JS里面的装箱和拆箱操作
平日工作里,我想各位少侠对下面的用法都不陌生吧 var s1 = "abc"; var s2 = s1.indexOf("a") 还有例如什么indexOf() ...
- 用JavaScript实现点击左侧列表右侧显示列表内容的方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- git 入门教程之冲突合并
如果足够幸运的话,团队成员互不影响,彼此相安无事,大家各自基于 master 分支的某个 commit 创建自己的分支,平时在分支上独立工作,等到一段时间后再合并 merge 到 master 分支, ...
- C#-简介(一)
1.C#语言简介 C#计算机语言 是一门高级计算机语言 他的开发模式更接近人类和社会的思维模式,有助于提高开发效率 C#历史 1998年COOL这个项目是C#语言的前身,由微软 Anders Hejl ...
- 洗礼灵魂,修炼python(80)--全栈项目实战篇(8)—— 计算器
用正则表达式开发一个计算器,计算用户给定的一串带有加减乘除的公式. 要求:不能使用eval转换字符串 分析: 要求简单,就是计算混合运算,但是不能使用eval直接转换,主要就是把整个式子中的小括号优先 ...
- 安装window 7系统----计算机经验
上期我们已经成功制作了U盘启动并且也成功进入了PE系统了,在PE微型系统中,除了简单的装系统来恢复C盘,还有什么功能你们可以使用的呢?如果这一期我没有把其他内容讲解的话,千万别乱搞,到时我可能会讲解几 ...
- 排序算法之快速排序的思想以及Java实现
1 基本思想 快速排序是在冒泡排序的基础上改进而来的,它是基于分治的思想.通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据 ...
- Visio画图--我的形状
本人用的Visio 2013 打开Visio后新建一个拓扑图,发现左侧形状一栏不见了 形状栏可以保存很多自定义图形,怎么才能将形状一栏重新显示出来呢?方法其实很简单,方法如下所示: 这时候我们就会发现 ...