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.总之,工程需要和添加的库的版本相符 |
转载于:https://www.cnblogs.com/shengshuai/archive/2009/04/30/1446940.html