今天开始搞wxWidgets,wxWidgets是一个跨平台的ui类库,自带系统的原生界面。开发的时候与mfc挺像的。
在windows环境下,必须先安装mingw(也许cygwin也可以)才能编译wxWidgets项目。
去wxWidgets官网下载msw的安装包,安装好之后就可以编译了。
编译的时候在命令行下进入../wxWidgets-2.8.0/build/msw目录下,然后输入命令
mingw32-make -f makefile.gcc BUILD=release SHARED=0 UNICODE=1 USE_ODBC=1
BUILD选项可以选release或dubug,如果你不打算调试wxWidgets本身,那就设为release,一般来说如果下载的安装包是stable release version的,都设为BUILD=release,SHARED选项可以设为0或1,0表示静态编译,1表示动态编译。
编译好之后就可以写一个demo了(开发方面的东西以后介绍)。我使用的ide是eclipse+cdt(假定你已经搞定了eclipse+cdt+mingw的环境配置),先创建一个C++项目,然后include一下wxWidgets的头文件,共有以下几个目录:
-
../wxWidgets-2.8.0/contrib/include
-
../wxWidgets-2.8.0/include
-
../wxWidgets-2.8.0/lib/gcc_lib/mswu
写点代码,就可以开始build了,在这之前还需设置一下编译器。
首先设置一下预处理器,一般就4个宏,WIN32,UNICODE,wxUSE_WX_RESOURCES,wxUSE_PROLOGIO。更多的预处理器宏可参考platform.h,该文件位于/wxWidgets-2.8.0/include/wx/platform.h。
注意:如果编译wxWidgets的时候设置了BUILD=debug,则预处理中还必须加入__WXDEBUG__,但如果是BUILD=release则一定不能加入__WXDEBUG__,否则编译工程的时候会出错。
然后设置链接库(如果新建了可执行c++工程,就在工程属性中添加。如果新建了makefile c++工程,则在makefile中添加)。共有以下类库(如果编译wxWidgets的时候设置了BUILD=debug,则下列类库会变成wx...ud_...):
wxmsw28u_xrc
wxmsw28u_richtext
wxbase28u_net
wxmsw28u_dbgrid
wxbase28u_odbc
wxmsw28u_media
wxmsw28u_aui
wxmsw28u_html
wxmsw28u_adv
wxbase28u_xml
wxmsw28u_core
wxbase28u
wxtiff
wxjpeg
wxpng
wxzlib
wxregexu
wxexpat
kernel32
user32
gdi32
comdlg32
winspool
winmm
shell32
comctl32
ole32
oleaut32
uuid
rpcrt4
advapi32
wsock32
odbc32
类库搜索路径:
"../wxWidgets-2.8.11/lib/gcc_lib"
"../wxWidgets-2.8.11/lib"
然后编译,运行,即可。