VC++6.0下搭建wxWidgets开发环境
转载 VC++6.0 下搭建 wxWidgets 开发环境
GTK、QT、SWT、SWING 一样,wxWidgets 也是一种开源跨平台的 GUI 框架。
因 wxWidgets 和 MFC 有些渊源,有些亲近,故要体验一番 wxWidgets。
现在最新版是 2.8.8。wxWidgets 程序还可运行于 Windows CE、Palm OS。
不但包括 GUI,还有 Media、Socket、ODBC 等库。
详情请见 wxWidgets 的官方网站是:http://www.wxwidgets.org.本篇介绍 VC++6.0 下如何搭建 wxWidgets 的开发环境,包括编译 wxWidgets 源码和配置 VC 环境。
所用 wxWidgets 的版本是 2.8.8。
第一步:下载并安装 wxWidgets
在 http://www.wxwidgets.org/downloads/ 下载到 wxWidgets 源码。
你可以下载 Windows 安装版 http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.8-Setup.exe (11.9M)
或者是 Zip 压缩版 http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.8.zip (15.9M)
假如我们下载的是 wxMSW-2.8.8-Setup.exe,就可运行它,过程中我们假定选择的安装目录是C:\Program Files\wxWidgets-2.8.8。
完成后,我们看到安装目录所在空间的大不是 127M。
第二步:编译 wxWidgets
编译方式有两种,一种是用 nmake 在命令行下编译。一种是在 VC++ 中打开 wx.dsw 进行编译,
1) nmake 编译
运行 cmd.exe 来到命令行下,进入到目录 d:\wxWidgets-2.8.8,然后执行
D:\wxWidgets-2.8.8>nmake -f makefile.vc
默认是编译成 DEBUG 版的静态库。
如果你想生成动态库,或生成的是 Release 版的,你可以修改 D:\wxWidgets-2.8.8\build\msw\config.vc 文件。
打开该文件你能看到可以更改的选项,其中重要的几个如下:
# What type of library to build? [0,1] -- 生成库的类型,0为静态库,1为动态库
SHARED = 0
# Compile Unicode build of wxWidgets? [0,1] -- 是否使和 UNICODE,0 否,1 是
UNICODE = 0
# Type of compiled binaries [debug,release] -- 是 debug 还是 release
BUILD = debug
其中还有许多顾名思义的选项,请根据需求修改。
对于 config.vc 中的选项也可以通过命令行覆盖掉配置文件中的值,如编译命令用D:\wxWidgets-2.8.8>nmake -f makefile.vc SHARED=1 UNICODE=1 BUILD=release就是编译 release 版,支持 UNICODE 的动态库了。
动态库和静态库的不同体现在使用上,静态库中的代码能编译进应用程序的 exe 文件中,这个 exe 文件可单独发布,但体积较庞大。
动态库可让 exe 文件执行时加载,虽然 exe 文件体积小了,但发布时必须带着相应的动态库文件。
2) VC 编译
还 可用 VC++ 打开 D:\wxWidgets-2.8.8\build\msw\wx.dsw,然后选择 Build->Batch Build... ,我们看到每个工程都有 16 个配置,请根据应用需求勾选你的配置,如所有工程的 Win32 Release 和 Win32 Debug 版本,然后 Build,如果你照单全收,编译将非常耗时而占空间。这种编译方式就是可以一下操作帮你编译出所有需要的版本。好, 等等编译完之后,在目录 D:\wxWidgets-2.8.8\lib\ 会有产生一个目录:vc_lib 是静态库的目录,默认编译有 17 个静态。
如果是编译成动态库则会产生目录 vc_dll。
在 vc_lib 中有 mswd 目录,release 版对应的是 msw,里面含有 Debug 和 Release 版的 setup.h。
注意到 Debug 版和 Release 以及和 UNICODE 、动态库、静态库组合条件编译生成的文件和目录名。
静态库编译到 D:\wxWidgets-2.8.8\lib\vc_lib 目录中
动态库编译到 D:\wxWidgets-2.8.8\lib\vc_dll 目录中
文件命名为 wxmsw28d_core.lib 文件为例:
wxmsw28_core.lib ---- Release,非 UNICODE 版
wxmsw28d_core.lib ---- Debug,非 UNICODE 版
wxmsw28u_core.lib ---- Release,UNICODE 版
wxmsw28ud_core.lib ---- Debug,UNICODE 版
对于 dll 文件的命名规范也一样的。
在 vc_lib 和 vc_dll 下如果全编译了会有四个目录,msw、mswd、mswu、mswud 意义同上。
编译完后可以把那些过程中的目标文件删了,它们占的空间实在是太大。
要是你还想以后重新编译用就留着吧。
第三步:测试VC++6.0是否能编译 wxWidgets sample project
a.为VC++6.0添加wxWidgets的LIB和INCLUDE 文件路径
项目配置 Additional Include Directories 和 Additional library path。
并且在下面前两个 Include Files 放在全局设置里也较合适。
进到 VC++ 的 Tools->Options->Directories,选择 "Include Files" 后,添加
D:\wxWidgets-2.8.8\include
D:\wxWidgets-2.8.8\contrib\include
D:\wxWidgets-2.8.8\lib\vc_lib\mswd
对应于 Project Settings -> C/C++ Tab->Preprocessor 中的 Additional include directories
再选择 "Libraries Files",添加
D:\wxWidgets-2.8.8\vc_lib
b.编译并运行minimal.dsw程序
open workspace :C:\Program Files\wxWidgets-2.8.8\samples\minimal\ minimal.dsw
编译OK并运行,就说明配置正常!
第四步:创建Win32 Application wxWidgets 项目wxHello
创建一个 Win32 Application 的空项目,项目名为 wxHello
Proejct->Settings (Alt+F7) 进入项目设置
1. C/C++选项卡->Code Generation -> use run-time library 设置为: Debug MutilThread DLL
2. C/C++选项卡-> PreProcessor -> PreProcessor Definitions
设置加上 __WXMSW__,__WXDEBUG__ ,如果是 Release 版,则只需加上 __WXMSW__。
3. C/C++选项卡-> PreProcessor -> Additional include directories
设置为 D:\wxWidgets-2.8.8\include,D:\wxWidgets-2.8.8\include\lib\vc_lib\mswd, 这是设置附加 Include 路径。
4. Link 选项卡-> Input -> Object/library modules
设置加上 wxmsw28d_core.lib wxbase28d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib
这些 Lib(没有这四个 lib comctl32.lib rpcrt4.lib winmm.lib wsock32.lib 的话请加上,关键是前两个)。
如果要使用 wxODBC 就加上 wxbase28d_odbc.lib。
5. Link 选项卡-> Input -> Addtional library path 设置为: D:\wxWidgets-2.8.8\lib\vc_lib。
注意:编译成不同版的执行代码应填入相应的 Additional include directories 和 Addtional library path。
编译成依赖 DLL 的执行文件还需要加上预处理指令 WXUSINGDLL用UNICODE 编译则需要加上预处理指令 _UNICODE
还有一种 Universal 编译,要加上预处理指令 __WXUNIVERSAL__这样一个普通的WxWdigets项目就设置好了.
我们测试 WxWidgets 自带的例子 minimal。新建一个 minimal.cpp 文件,
内容同 D:\wxWidgets-2.8.8\samples\minimal\minimal.cpp,编译,不出意外,成功了!
Release 静态库版(vc_msw) minimal.exe 1.11M,可单独发布
Debug 静态库版(vc_mswd) minimal.exe 2.52M,可单独发布
Release 动态库版(vc_mswdll) minimal.exe 68K,加上wxmsw28_core_vc_custom.dll (2.85M) 和 wxbase28_vc_custom.dll (1.11M),共 4M。Debug 动态库版(vc_mswddll) minimal.exe 96K,加上wxmsw28d_core_vc_custom.dll (4.26M) 和 wxbase28d_vc_custom.dll (1.82M),共 6.1M。这是一个简单的 wxWidgets 程序,只用到了两个动态库的情况。
在用到 wxWidgets 库较少时用静态库来编译发布文件会小一些,若是用到组件多的时候,可能用动态库方便些,请酌情决定。
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
VC++6.0使用
文章目录VC++6.0使用0.前言1.下载2.远离VC++6.0VC++6.0s/870279322.远离VC++6.0就酱。...
c++ 开发语言 后端 vc++6.0 企业版 -
集成开发环境IDE及 VC++6.0实操
目录1 I D E 简 介1.1I D E概念1.2W i n 常 见 I D E2V C + + 6 . 0 界 面 简 介2.1界 面 预 览2.2标 题 菜 单 快 捷 方 式
ide c++ 开发语言 microsoft 可执行文件 -
Windows程序设计 VC++6.0开发环境熟悉
熟悉Visual C++ 6.0开发环境,掌握VC6中建立、维护、运行工程项目的方法,掌握VC6中调试的方法。熟悉Visual C++ 6.0开发环
Windows 程序设计 VC++6.0 开发环境 背景色前景色 -
vc++6.0修改字体
vc++自带的字体不太好看解决办法:修改注册表win+r 运行 regedit 调出注册表编辑器进入到目
vc++修改编辑字体 vc++6.0 notepad++ 右键 -
vc++6.0快捷键
功能分类 快捷键 说明
职场 快捷键 vc 休闲 -
VC++6.0建工程步骤
工欲善其事、必先利其器。欢迎感兴趣的朋友一起学习​O(∩_∩)O~
C语言 菜单栏 对话框 工程 编写程序