http://www.wxwidgets.org/
下载wxWidgets 的zip包。解压到某一目录(后文中此目录用 %WXPATH%代替)。
编译 wxWidgets
(可以用IDE打开%WXPATH%\build\msw\wx.dsw或wx_dll.dsw编译,注意相关参数的设置)
在 Visual Studio 命令行环境下进入%WXPATH%\build\msw 目录。这里面有一系列makefile,根据其对应的编译器不同有着不同的后缀,并且每种编译器也对应着一个config 文件。
makefile.vc 和 config.vc。
用文本编辑器打开 config.vc 文件。这是关于如何编译
wxWidgets 的设置。这里解释一些重要的选项。
SHARE: 编译产生的 wxWidgets 库是静态库还是动态库
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 BUILD=xxxx UNICODE=yy
编译产生的临时文件分别在 msw mswd mswu mswud
四个子目录中,这些是为了在调整设置后重新编译时节约时间的,若不想重新编译可以把它们删掉。而最终产生的lib 文件已经被拷贝到了 %WXPATH%\lib\vc_lib下。其中每套库还有一个配置文件,分别在%WXPATH%\lib\vc_lib 下的 msw mswd mswu mswud
四个目录中,这些配置文件里包含许多可以调整的预编译选项,具体可以参考相关文档。
到此为止,wxWidgets库已经编译好了。
设置一个使用 wxWidgets 的Visual Studio 工程
启动 Visual C++ 2005,打开Tools\Option 菜单。这里是 IDE 的一些全局选项。看看
Projects and Solutions\VC++ Directories 里面是否包括 Platform SDK的include 和lib目录,如果没有的话加上。
然后新建一个工程(Win32 Application,在工程设置里面修改编译器和连接器的设置如下(注意把%WXPATH% 换成真实的 wxWidgets 解压目录):
[Debug]
Configuration Properties\C/C++\General\Additional Include Directories:
%WXPATH%\include;%WXPATH%\include\msvc
Configuration Properties\C/C++\Preprocessor\Preprocessor Definitions:
WIN32;__WXMSW__;_WINDOWS;_DEBUG;__WXDEBUG__
Configuration Properties\C/C++\Code Generation\Runtime Library:
Multi-threaded Debug(/MTd)
Configuration Properties\Linker\General\Additional Library Directories:
%WXPATH%\lib\vc_lib
Configuration Properties\Linker\Input\Additional Dependencies:
kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib
shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib
advapi32.lib wsock32.lib odbc32.lib opengl32.lib
(wxWidgets 的库好像会在预编译里自动被加上,否则可以将wxXX库添加进去)
Configuration Properties\Linker\Debugging\Generate Debug Info:
Yes(/DEBUG)
[Release]
Configuration Properties\C/C++\General\Additional Include Directories:
%WXPATH%\include;%WXPATH%\include\msvc
Configuration Properties\C/C++\Preprocessor\Preprocessor Definitions:
WIN32;__WXMSW__;_WINDOWS
Configuration Properties\C/C++\Code Generation\Runtime Library:
Multi-threaded Debug(/MT)
Configuration Properties\Linker\General\Additional Library Directories:
%WXPATH%\lib\vc_lib
Configuration Properties\Linker\Input\Additional Dependencies:
kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib
shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib
advapi32.lib wsock32.lib odbc32.lib opengl32.lib
此外还需特别注意字符集是否是Unicode.总之,工程需要和添加的库的版本相符
|