VC6 编译并且使用wxWidgets - 我们用命令行方式build
今天又和大牛聊了一会,他推荐了一个跨平台的lib。
跨平台并没有什么,我只是想找一套自己喜欢的UI lib。 听说Totual
就是因为wxWidgets比MFC优雅才使用wxWidgets。WTL也接触过,过去的工作
很少写UI, 因此这次有机会提高一下对UI的理解。
wxWidget 下载 2.9.0 (http://www.wxwidgets.org/downloads/)
我仅仅是研究使用,你可以选择稳定的版本
下载加压到 G:/devCenter/wxWidgets (G是我的工作盘符,你可以设置你自己的盘符)
进入G:/devCenter/wxWidgets/build/msw 目录
这个目录就是cmd方式build wxWidgets 一系列makefile, 不同的编译器有不同的后缀,也同时对应着一个
config文件,
VC6 就是用这个
makefile.vc 和 config.vc
用文本编辑器打开 config.vc 文件。这是关于如何编译
wxWidgets 的设置。这里解释一些重要的选项。
SHARE: 编译产生的 wxWidgets 库是静态库还是动态库(建议采用动态库 ,发布的时候exe小些,昨天晚上build一个小程序居然6M)
UNICODE: 是否支持 unicode utf-8
BUILD: 编译产生的库是用于调试的还是最终发行的
UNICODE、BUILD 选项可产生四种组合,产生四套不同的库,若再和SHARE 组合则可产生八套不同的库。
MONOLITHIC: 是否只产生一个单一的库文件
USE_GUI: 是否编译图形界面库
USE_HTML: 是否编译 HTML 库
USE_XRC: 是否编译 XRC 库
USE_OPENGL: 是否编译 OPENGL 库
USE_ODBC: 是否编译 ODBC 库
USE_QA: 是否编译 QA 库
RUNTIME_LIBS: 使用动态还是静态的 C++ 运行库,对应VC编译器的 /MD 和 /MT 参数
除了 UNICODE 和 BUILD 选项之外,其它选项如下:
SHARE = 0
MONOLITHIC = 0
USE_GUI = 1
USE_HTML = 1
USE_XRC = 1
USE_OPENGL = 1
USE_ODBC = 1
USE_QA = 1
RUNTIME_LIBS = static
例如:
nmake -f makefile.vc UNICODE=support (0 or 1) BUILD=style(debug or release)
可以这样:
nmake -f makefile.vc SHARED=1 UNICODE=1 BUILD=release
编译产生的临时文件分别在 msw mswd mswu mswud
四个子目录中,这些是为了在调整设置后重新编译时节约时间的,若不想重新编译可以把它们删掉。
而最终产生的lib 文件已经被拷贝到了 G:/devCenter/wxWidgets/lib/vc_lib下。
其中每套库还有一个配置文件,分别在 G:/devCenter/wxWidgets/lib/vc_lib下的 msw mswd mswu mswud
四个目录中,这些配置文件里包含许多可以调整的预编译选项,具体可以参考相关文档。
开始操作:
我们并不打算生成8种不同的lib,这里我们选用
windows XP(SP3) + vc6(sp6) + Debug + Unicode + SHARE = 1 //Debug方式支持unicode 动态库
windows XP(SP3) + vc6(sp6) + Release + Unicode + SHARE = 1
windows XP(SP3) + vc6(sp6) + Debug + SHARE = 1 //Debug 不支持unicode 动态库
windows XP(SP3) + vc6(sp6) + Debug + SHARE = 1
具体请看 config.vc
1. # What type of library to build? [0,1]
SHARED = 1
2. # Compile Unicode build of wxWidgets? [0,1]
UNICODE = 1 / 0
3. # Type of compiled binaries [debug,release]
BUILD = release / debug
开始编译:
方式1. 修改config.vc 之后执行: nmake -f makefile.vc
方式2. 使用命令覆盖 - 这个方便,你粘帖一下就好了,我可是的写出来,哈哈,go
nmake -f makefile.vc SHARED=1 UNICODE=0 BUILD=debug
nmake -f makefile.vc SHARED=1 UNICODE=0 BUILD=release 非UNICODE 现在已经强烈不支持了,兄弟还是用Unicode吧,哈哈
nmake -f makefile.vc SHARED=1 UNICODE=1 BUILD=debug
nmake -f makefile.vc SHARED=1 UNICODE=1 BUILD=release
run->cmd->cd G:/devCenter/wxWidgets/build/msw ->G: ->VCVARS32.BAT(vc6环境设定,装了vc都有这个文件) 输入上面的命令,等待吧
build完一个后,别着急,先建立一个目录: G:/devCenter/wxWidgets/lib/vc_dll/Debug copy
所有的生成(G:/devCenter/wxWidgets/lib/ 是默认生成路径)文件到这个目录下
顺便建立目录 G:/devCenter/wxWidgets/lib/vc_dll/ReleaseU G:/devCenter/wxWidgets/lib/vc_dll/DebugU G:/devCenter/wxWidgets/lib/vc_dll/Release
到此为止,wxWidgets库已经编译好了。 明天在写,怎么设置工作路径可以更好的工作,这个地方还是有待改进,文件不copy好乱