使用MinGW编译并配置wxWidgets
来源:互联网 发布:大富豪3.41棋牌源码 编辑:程序博客网 时间:2024/06/05 18:46
介绍
wxWidgets 是一个开源的跨平台的 C++ 构架库(framework),它可以提供 GUI (图形用户界面)和其它工具。
软件准备
- wxWidgets:http://wxwidgets.org/
- MinGW(推荐TDM-GCC):http://tdm-gcc.tdragon.net/
把 mingw/bin 目录放在系统环境变量 PATH 中。
编译 wxWidgets
Makefile 文件位于 wxWidgets/build/msw,gcc 对应 config.gcc 和 makefile.gcc,而我们的参数均在 config.gcc 中,你可以直接查阅这个文件来获得帮助。
下面的 Makefile 文件来自 wxWidgets 3.0.0。
Makefile 参数讲解
UNICODE
编译出 wxWidgets 支持 Unicode,1 为使用 Unicode。
可取:1,0
默认:1
BUILD
wx 的编译模式
可取:debug,release
默认:debug
DEBUG_INFO
编译的 wx 是否包含调试信息,1为包含。
可取:0,1,default
默认:default
注:default 指当 BUILD=debug 包含调试信息,当 BUILD=release 不包含。
MONOLITHIC
输出的库是一个单一的大文件还是多个小文件,1 为输出单一大文件。
可取:0,1
默认:0
VENDOR
可以自定义小名称,会跟在dll的最后面。
默认的 custom 输出的文件名称类似为wxmsw30u_xxx_gcc_custom.dll
可取任意字符
默认:custom
SHARED 以及 RUNTIME_LIBS
这两个选项共同指定wx库的是静态的还是动态的。
如果 SHARED=1 则输出动态库并导出符号(.dll和.a)
如果 SHARED=0 且 RUNTIME_LIBS=static 则输出静态库(.a),如果 SHARED=0 且 RUNTIME_LIBS=dynamic 则输出动态库但不导出符号(.dll)
默认:SHARED=0,RUNTIME_LIBS=dynamic
编译
3.0.2 已经要求编译器使用 C++11,所以编译时还需要附带参数 -std=gnu++11 或者 -std=c++11
动态库
在 wx 根目录新建一个批处理:
@echo offcd build/msw@title 编译wxWidgetsmingw32-make -f makefile.gcc clean@echo 编译调试版本mingw32-make -f makefile.gcc CPPFLAGS=-std=gnu++11 LDFLAGS=-s SHARED=1 BUILD=debug UNICODE=1 DEBUG_INFO=0@echo 编译发行版本mingw32-make -f makefile.gcc CPPFLAGS="-Os -std=gnu++11" LDFLAGS=-s SHARED=1 BUILD=release UNICODE=1 DEBUG_INFO=0@echo 编译结束@pause
静态库
同样在 wx 根目录新建一个批处理:
@echo offcd build/msw@title 编译wxWidgetsmingw32-make -f makefile.gcc clean@echo 编译调试版本mingw32-make -f makefile.gcc CPPFLAGS=-std=gnu++11 LDFLAGS=-s SHARED=0 BUILD=debug UNICODE=1 DEBUG_INFO=0 RUNTIME_LIBS=static@echo 编译发行版本mingw32-make -f makefile.gcc CPPFLAGS="-Os -std=gnu++11" LDFLAGS=-s SHARED=0 BUILD=release UNICODE=1 DEBUG_INFO=0 RUNTIME_LIBS=static@echo 编译结束@pause然后双击就开始编译了。
关于编译错误
已知的一个错误是由于 MSYS 引起的,所以在编译前 MSYS 不能在环境变量 PATH 中。
另外目前的 wxWidgets 要求编译器支持 C++11,所以如果编译器不支持或者没有开启相应开关也可能导致报错
相关工具
官方建议工具集合
http://wiki.wxwidgets.org/ToolsIDE
Code::Blocks
只需要设置一个全局变量 wx 指向 wxWidgets 即可。
如果使用 Unicode 则需要选择 Enable,如果编译的是动态库还需要勾选 Use wxWidgets DLL。
CodeLite
在全局变量中添加:
WXWIN 指向 wx 的根目录
WXCFG 指向当前变异的配置文件,一般位于 lib\gcc_dll\mswu或lib\gcc_dll\mswud
界面设计
DialogBlocks
用起来最顺手的一个,可以直接生成 Makefile 或者 VS 的项目文件,但是需要搭配其他编辑器。
共享软件
网站:http://www.anthemion.co.uk/dialogblocks/
wxFormBuilder
开源跨平台,可生成 C++, Python, PHP, Lua 和 XRC 的源代码
网站:http://sourceforge.net/projects/wxformbuilder/
wxCrafter
优点在于可与 Codelite 无缝集成,也可单独安装。更新频率高,对新版 wx 的支持比较完善
有免费版和收费版两种,免费版有控件个数和类型限制
网站:http://wxcrafter.codelite.org/
- 使用MinGW编译并配置wxWidgets
- 使用 MinGW 编译 wxWidgets
- 使用mingw编译wxWidgets
- 使用 minGW 编译 wxWidgets
- 使用MinGW编译wxWidgets
- 使用Mingw编译wxWidgets的Dos命令
- mingw编译wxWidgets
- MinGW编译wxWidgets问题
- MingW 编译QtCreator并使用
- 在Code:Blocks使用MinGW编译wxWidgets库
- 解决 MinGw编译wxWidgets出错
- 在 MinGW 环境中编译 wxWidgets 库
- (转载MinGW 下编译wxWidgets)
- windows7 64位机上配置MinGW+Codeblocks+ wxWidgets
- windows7 64位机上配置MinGW+Codeblocks+ wxWidgets
- codeblock + wxwidgets + mingw 详细安装配置
- MinGW下载并配置gcc\g++编译环境
- windows-qt 使用mingw编译c++boost并使用
- 简单工厂模式
- [leetcode] Valid Palindrome
- poj 1995 快速幂取模
- mysql---索引及explain的作用
- 《图解CSS3:核心技术与案例实战》
- 使用MinGW编译并配置wxWidgets
- Android中的Ajax
- Apple Push Notification Services in iOS 6 Tutorial: Part 1/2
- Android Intent调用大全、系统自带Intent调用大全
- play 框架的MVC结构
- UITableView底部FooterView实现上拉刷新
- 对文件压缩加密,解密解压缩,非对称加密,RSA,AES算法
- Android LayoutInflater 的使用
- WPF学习----数据绑定