// * create by zyzx
// * 2009-3-11
// * 轉載請注明來源:http://www.shnenglu.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庫只能做這兩種環境的描述。