// * create by zyzx
// * 2009-3-11
// * 转载请注明来源:http://www.cppblog.com/zyzx
使用wxWidgets库已经有一年多了,很多时候想写点回忆性质的东西来,以备今后工作学习中参考。但每次下笔后却又因为总总原因,中断或是零碎的事情却又没再抬起过笔。虽然我目前接触了解wxWidgets时间不长,今后的工作中还不一定能够用到她,写东西也需要花费大量的精力,但我尽可能的将我所知道的表述出来,留给需要的人,减少入门花费的时间。
一、wx库简介
跨平台GUI库,其他的不说了。Google一下,看看是不是你所需要的。
官方网站:http://www.wxwidgets.org/
Wiki:http://wiki.wxwidgets.org/Main_Page
二、VS +
Win32
环境编译
目标库版本:
2.8.7
编译平台:
WinXP + VS2005
编译类型:动态库
+ Unicode + Debug
编译目标平台:
Win32
1
、打开工程
wxWidgets-2.8.7\build\msw\wx_dll.dsw
,将其转换为
vs2005
工程关闭保存,再打开工程
wx_dll.sln
。
2
、将解决方案配置更换为
DLL Unicode Debug
。
3
、依次单独编译
wxregex
、
wxzlib
、
wxexpat
、
wxtiff
、
base
、
wxjpeg
、
wxpng
、
core
、
odbc
、
xml
、
adv
、
html
、
net
、
gl
、
dbgrid
、
qa
、
richtext
、
aui
、
xrc
、
media
库。
其中目前版本
odbc
、
gl
、
dbgrid
工程并不完善,出现编译错误忽略即可。
4
、如果以上顺利通过,那么将得到以下我们需要的库文件
编译预定义环境
wxWidgets-2.8.7\lib\vc_dll\mswud\wx\
setup.h
wxWidgets-2.8.7\lib\vc_dll\mswud\wx\msw\
rcdefs.h
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_net_vc_custom.dll
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_odbc_vc_custom.dll
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_vc_vc_custom.dll
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_xml_vc_custom.dll
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_adv_vc_custom.dll
w
xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_aui_vc_custom.dll
w
xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_core_vc_custom.dll
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_gl_vc_custom.dll
w
xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_html_vc_custom.dll
w
xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_media_vc_custom.dll
w
xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_qa_vc_custom.dll
w
xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_richtext_vc_custom.dll
w
xWidgets-2.8.7\lib\vc_dll\wxmsw28ud_xrc_vc_custom.dll
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud.lib
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_net.lib
wxWidgets-2.8.7\lib\vc_dll\wxbase28ud_xml.lib
wxWidgets-2.8.7\lib\vc_dll\wxexpatd.lib
wxWidgets-2.8.7\lib\vc_dll\wxjpegd.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_adv.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_aui.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_core.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_html.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_media.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_qa.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_richtext.lib
wxWidgets-2.8.7\lib\vc_dll\wxmsw28ud_xrc.lib
wxWidgets-2.8.7\lib\vc_dll\wxpngd.lib
wxWidgets-2.8.7\lib\vc_dll\wxregexud.lib
wxWidgets-2.8.7\lib\vc_dll\wxtiffd.lib
wxWidgets-2.8.7\lib\vc_dll\wxzlibd.lib
注意:将以上文件按照文件按照原目录相对结构拷贝到要制作的库路径下,并将
wxWidgets-2.8.7\
include
目录也拷贝到其目录下,以后要使用只需要包含这些路径即可。
为了以后开发方便,设定的开发库路径为:
wxLib\include
wxLib\Debug\mswud\wx\msw
wxLib\Debug
三、VS + WinCE环境编译
目标库版本:2.8.7
编译平台:WinXP + VS2005
编译类型:静态库 + Unicode + Debug + Pocket PC 2003(ARM4)
编译目标平台:WinCE4.0以上
1、打开工程wxWidgets-2.8.7\build\wince\ wx.vcw。这个工程是evc的工程,先将其转换为vs2005的工程wx.sln。
2、打开wxWidgets-2.8.7\include\wx\minifram.h文件,在最后一个endif之前加上
//** ADD 修正wince端无法通过编译
#ifdef _WIN32_WCE
#include "wx/frame.h"
typedef wxFrame wxMiniFrame;
#endif
3、依次编译wxzlib、wxpng、wxjpeg、wxexpat、gl、mono。直接编译会有些许小问题,请看1、2楼回帖。
如果有编译事件错误,重新编译一次即可。
4、如果通过以上编译可得到如下我们需要的库文件
wxWidgets-2.8.7\lib\evc_armv4_lib\winced\wx\ setup.h
wxWidgets-2.8.7\lib\evc_armv4_lib\winced\wx\msw\ rcdefs.h
wxWidgets-2.8.7\build\wince\Pocket PC 2003 (ARMV4)\Debug\wx_wxzlib.lib
wxWidgets-2.8.7\build\wince\Pocket PC 2003 (ARMV4)\Debug\ wx_wxpng.lib
wxWidgets-2.8.7\build\wince\Pocket PC 2003 (ARMV4)\Debug\ wx_wxjpeg.lib
wxWidgets-2.8.7\build\wince\Pocket PC 2003 (ARMV4)\Debug\ wx_wxexpat.lib
wxWidgets-2.8.7\build\wince\Pocket PC 2003 (ARMV4)\Debug\ wx_gl.lib
wxWidgets-2.8.7\build\wince\Pocket PC 2003 (ARMV4)\Debug\ wx_mono.lib
注意:将以上文件按照文件按照原目录相对结构拷贝到要制作的库路径下,并将
wxWidgets-2.8.7\
include
目录也拷贝到其目录下,以后要使用只需要包含这些路径即可。
为了以后开发方便,设定的开发库路径为:
wxCELib\include
wxCELib\Debug\winced\wx\msw
wxCELib\Debug
以上是在VS的编译环境,我也尝试过在Eclipse+GCC+WIN32环境下编译通过。由于工作生活中只接触到WIN32和WINCE环境,因此关于wx库只能做这两种环境的描述。