转自: http://blog.csdn.net/shalyf/article/details/16826857
一、安装
前往官网下载最新wxWidgets 3.0.0。
https://sourceforge.net/projects/wxwindows/files/3.0.0/wxMSW-3.0.0-Setup.exe/download
下载完默认安装即可,可修改安装路径。
二、编译
打开安装目录wxWidgets-3.0.0在build\msw下找到wx.dsw。
用VS2013打开wx.dsw,等待工程从VC6到VS2013的转换完成。
解决方案结构如下图所示。
右击解决方案,点击批生成,勾选所有Debug和Release(可根据需要选择),点击生成进行编译。
此时,wxWidgets-3.0.0\lib\vc_lib目录如下所示,已生成所需库文件,其中u表示Release版本,ud表示Debug版本。
三、配置
新建Win32项目。
新建源文件test.cc,粘贴以下代码。
// wxWidgets "Hello world" Program // For compilers that support precompilation, includes "wx/wx.h". #include <wx/wxprec.h> #ifndef WX_PRECOMP #include <wx/wx.h> #endif class MyApp : public wxApp { public: virtual bool OnInit(); }; class MyFrame : public wxFrame { public: MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size); private: void OnHello(wxCommandEvent& event); void OnExit(wxCommandEvent& event); void OnAbout(wxCommandEvent& event); wxDECLARE_EVENT_TABLE(); }; enum { ID_Hello = 1 }; wxBEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(ID_Hello, MyFrame::OnHello) EVT_MENU(wxID_EXIT, MyFrame::OnExit) EVT_MENU(wxID_ABOUT, MyFrame::OnAbout) wxEND_EVENT_TABLE() wxIMPLEMENT_APP(MyApp); bool MyApp::OnInit() { //MyFrame *frame = new MyFrame("Hello World", wxPoint(50, 50), wxSize(450, 340)); MyFrame *frame = new MyFrame("Hello World", wxDefaultPosition, wxDefaultSize); frame->Show(true); return true; } MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) : wxFrame(NULL, wxID_ANY, title, pos, size) { wxMenu *menuFile = new wxMenu; menuFile->Append(ID_Hello, "&Hello...\tCtrl-H", "Help string shown in status bar for this menu item"); menuFile->AppendSeparator(); menuFile->Append(wxID_EXIT); wxMenu *menuHelp = new wxMenu; menuHelp->Append(wxID_ABOUT); wxMenuBar *menuBar = new wxMenuBar; menuBar->Append(menuFile, "&File"); menuBar->Append(menuHelp, "&Help"); SetMenuBar(menuBar); CreateStatusBar(); SetStatusText("Welcome to wxWidgets!"); } void MyFrame::OnExit(wxCommandEvent& event) { Close(true); } void MyFrame::OnAbout(wxCommandEvent& event) { wxMessageBox("This is a wxWidgets' Hello world sample", "About Hello World", wxOK | wxICON_INFORMATION); } void MyFrame::OnHello(wxCommandEvent& event) { wxLogMessage("Hello world from wxWidgets!"); }1、 包含目录
右击项目,打开项目属性页,配置一项选择所有配置
配置属性->C/C++->常规->附加包含目录 中添加:
A、 配置一项改为Release C:\wxWidgets-3.0.0\include C:\wxWidgets-3.0.0\lib\vc_lib\mswu B、 配置一项改为Debug C:\wxWidgets-3.0.0\include C:\wxWidgets-3.0.0\lib\vc_lib\mswud2、 库目录
配置属性->链接器->常规->附加库目录 中添加:
C:\wxWidgets-3.0.0\lib\vc_lib3、 MFC的使用
配置属性->常规->MFC的使用:使用标准 Windows 库
4、 依赖项
配置属性->链接器->输入->附加依赖项 按照如下规则添加:
A、 配置一项改为Release
wxbase30u.lib wxbase30u_net.lib wxbase30u_xml.lib wxexpat.lib wxjpeg.lib wxmsw30u_adv.lib wxmsw30u_aui.lib wxmsw30u_core.lib wxmsw30u_gl.lib wxmsw30u_html.lib wxmsw30u_media.lib wxmsw30u_propgrid.lib wxmsw30u_qa.lib wxmsw30u_ribbon.lib wxmsw30u_richtext.lib wxmsw30u_stc.lib wxmsw30u_xrc.lib wxpng.lib wxregexu.lib wxscintilla.lib wxtiff.lib wxzlib.lib comctl32.lib rpcrt4.lib B、 配置一项改为Debug wxbase30ud_net.lib wxmsw30ud_html.lib wxbase30ud_xml.lib wxmsw30ud_adv.lib wxmsw30ud_aui.lib wxmsw30ud_gl.lib wxmsw30ud_media.lib wxmsw30ud_propgrid.lib wxmsw30ud_qa.lib wxmsw30ud_ribbon.lib wxmsw30ud_richtext.lib wxmsw30ud_stc.lib wxmsw30ud_xrc.lib wxscintillad.lib wxmsw30ud_core.lib wxbase30ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxexpatd.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib odbc32.lib5、 预处理器定义
配置一项改为Debug
配置属性->C/C++->预处理器->预处理器定义 中添加:
__WXMSW__ __WXDEBUG__ 6、 保存后即可编译增加vs2015支持
vs2015影响编译的改动,主要是定义了snprintf,以及编译器版本升级到14。
需要对wxWidgets作如下修改,才能使用vs2015进行编译。
%WXWIN%\include\msvc\wx\setup.h,66行,增加版本支持
#elif _MSC_VER == 1900 #define wxCOMPILER_PREFIX vc140
%WXWIN%\include\wx\compiler.h,56行,增加版本支持
#elif __VISUALC__ < 2000 #define __VISUALC14__
在下面三个文件中,找到snprintf的宏定义,注释掉
%WXWIN%\src\tiff\libtiff\tif_config.h %WXWIN%\src\tiff\libtiff\tif_config.vc.h %WXWIN%\src\zlib\gzguts.h
===补充:使用预编译二进制文件搭建环境,上面的可以不看了===
1.将 wxWidgets-3.0.3-headers.7z 和 wxMSW-3.0.3_vc140_x64_Dev.7z 解压到 C:\wxWidgets-3.0.3
2.设置环境变量 WXWIDGETS_ROOT C:\wxWidgets-3.0.3 3.Path 中添加 C:\wxWidgets-3.0.3\lib\vc140_x64_dll 4.Debug x64配置添加包含目录: Configuration -> c/c++ -> General -> Additional Include Directories: 添加: $(WXWIDGETS_ROOT)\include;$(WXWIDGETS_ROOT)\lib\vc140_x64_dll\mswu; 5.Debug x64配置添加库目录: Configuration -> Linker -> General -> Additional Library Directories: 添加: $(WXWIDGETS_ROOT)\lib\vc140_x64_dll; 6.Debug x64配置添加引用库: Configuration -> Linker -> Input -> Additional Dependencies:添加:
wxbase30ud_net.lib wxmsw30ud_html.lib wxbase30ud_xml.lib wxmsw30ud_adv.lib wxmsw30ud_aui.lib wxmsw30ud_gl.lib wxmsw30ud_media.lib wxmsw30ud_propgrid.lib wxmsw30ud_qa.lib wxmsw30ud_ribbon.lib wxmsw30ud_richtext.lib wxmsw30ud_stc.lib wxmsw30ud_xrc.lib wxscintillad.lib wxmsw30ud_core.lib wxbase30ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxexpatd.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib odbc32.lib 7.Debug x64配置添加预处理宏: Configuration -> c/c++ -> Preprocessor -> Preprocessor Definitions: 添加: __WXMSW__ __WXDEBUG__ WXUSINGDLL