// * create by zyzx
// * 2009-3-11
// * 轉(zhuǎn)載請(qǐng)注明來(lái)源:http://www.shnenglu.com/zyzx
???????? 使用wxWidgets庫(kù)已經(jīng)有一年多了,很多時(shí)候想寫(xiě)點(diǎn)回憶性質(zhì)的東西來(lái),以備今后工作學(xué)習(xí)中參考。但每次下筆后卻又因?yàn)榭偪傇颍袛嗷蚴橇闼榈氖虑閰s又沒(méi)再抬起過(guò)筆。雖然我目前接觸了解wxWidgets時(shí)間不長(zhǎng),今后的工作中還不一定能夠用到她,寫(xiě)東西也需要花費(fèi)大量的精力,但我盡可能的將我所知道的表述出來(lái),留給需要的人,減少入門(mén)花費(fèi)的時(shí)間。
一、wx庫(kù)簡(jiǎn)介
????????? 跨平臺(tái)GUI庫(kù),其他的不說(shuō)了。Google一下,看看是不是你所需要的。
????????? 官方網(wǎng)站:http://www.wxwidgets.org/
????????? Wiki:http://wiki.wxwidgets.org/Main_Page
二、VS +
Win32
環(huán)境編譯
目標(biāo)庫(kù)版本:
2.8.7
編譯平臺(tái):
WinXP + VS2005
編譯類型:動(dòng)態(tài)庫(kù)
+ Unicode + Debug
編譯目標(biāo)平臺(tái):
Win32
1
、打開(kāi)工程
wxWidgets-2.8.7\build\msw\wx_dll.dsw
,將其轉(zhuǎn)換為
vs2005
工程關(guān)閉保存,再打開(kāi)工程
wx_dll.sln
。
2
、將解決方案配置更換為
DLL Unicode Debug
。
3
、依次單獨(dú)編譯
wxregex
、
wxzlib
、
wxexpat
、
wxtiff
、
base
、
wxjpeg
、
wxpng
、
core
、
odbc
、
xml
、
adv
、
html
、
net
、
gl
、
dbgrid
、
qa
、
richtext
、
aui
、
xrc
、
media
庫(kù)。
其中目前版本
odbc
、
gl
、
dbgrid
工程并不完善,出現(xiàn)編譯錯(cuò)誤忽略即可。
4
、如果以上順利通過(guò),那么將得到以下我們需要的庫(kù)文件
編譯預(yù)定義環(huán)境
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
注意:將以上文件按照文件按照原目錄相對(duì)結(jié)構(gòu)拷貝到要制作的庫(kù)路徑下,并將
wxWidgets-2.8.7\
include
目錄也拷貝到其目錄下,以后要使用只需要包含這些路徑即可。
???????????
??????????為了以后開(kāi)發(fā)方便,設(shè)定的開(kāi)發(fā)庫(kù)路徑為:
????????? wxLib\include
????????? wxLib\Debug\mswud\wx\msw
????????? wxLib\Debug
三、VS + WinCE環(huán)境編譯
目標(biāo)庫(kù)版本:2.8.7
編譯平臺(tái):WinXP + VS2005
編譯類型:靜態(tài)庫(kù) + Unicode + Debug + Pocket PC 2003(ARM4)
編譯目標(biāo)平臺(tái):WinCE4.0以上
1、打開(kāi)工程wxWidgets-2.8.7\build\wince\ wx.vcw。這個(gè)工程是evc的工程,先將其轉(zhuǎn)換為vs2005的工程wx.sln。
2、打開(kāi)wxWidgets-2.8.7\include\wx\minifram.h文件,在最后一個(gè)endif之前加上
//** ADD 修正wince端無(wú)法通過(guò)編譯
#ifdef _WIN32_WCE
#include "wx/frame.h"
typedef wxFrame wxMiniFrame;
#endif
3、依次編譯wxzlib、wxpng、wxjpeg、wxexpat、gl、mono。直接編譯會(huì)有些許小問(wèn)題,請(qǐng)看1、2樓回帖。
如果有編譯事件錯(cuò)誤,重新編譯一次即可。
4、如果通過(guò)以上編譯可得到如下我們需要的庫(kù)文件
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
注意:將以上文件按照文件按照原目錄相對(duì)結(jié)構(gòu)拷貝到要制作的庫(kù)路徑下,并將
wxWidgets-2.8.7\
include
目錄也拷貝到其目錄下,以后要使用只需要包含這些路徑即可。
??????????為了以后開(kāi)發(fā)方便,設(shè)定的開(kāi)發(fā)庫(kù)路徑為:
????????? wxCELib\include
????????? wxCELib\Debug\winced\wx\msw
????????? wxCELib\Debug
??????以上是在VS的編譯環(huán)境,我也嘗試過(guò)在Eclipse+GCC+WIN32環(huán)境下編譯通過(guò)。由于工作生活中只接觸到WIN32和WINCE環(huán)境,因此關(guān)于wx庫(kù)只能做這兩種環(huán)境的描述。