QQ客服热线
首页 > 信息资讯 > 技术专栏

技术专栏

Windows下安装wxWidgets
2013年9月20日
摘要: wxWidgets是一个开源的跨平台的C++构架库(framework),它可以提供GUI(图形用户界面)和其它工具。目前的2.x版本支持所有版本的Windows、带GTK+或Motif的Unix和MacOS。一个支持OS/2的版本正在开发中。

Windows os下安装wxWindows的详细过程:
 
1、   登陆http://www.wxwidgets.org/,下载wxMSW-2.8.12-Setup.exe
 
2、   运行wxMSW-2.8.12-Setup.exe,将wxWidgets安装到D:\wxWidgets-2.8.12
 
3、   安装完毕后还需要进行编译,要求有IDE,我用的是MS Visual Studio 2010
 
4、   进入D:\wxWidgets-2.8.12\build\msw,运用MS Visual Studio 2010打开wx.dsw或者wx_dll.dsw(或者两者都编译),因为.dsw文件是vc6的工程文件,点确定将所有文件进行转换,然后点击Build->Configuration Manager,弹出窗口,选择Active solution configuration为Unicode Debug或是别的,如果需要其中多个solution configuration,可以依次选中,然后依次按下F6键Build solution,我分别选中了Unicode Debug和Unicode Release,编译完成后会在D:\wxWidgets-2.8.8\lib下生成vc_lib文件夹,其中包括生成的相应的.lib等文件和 mswud文件夹。到此,wxWidgets安装完毕。
 
【注意】wxbase28ud.lib中的ud代表Unicode Dug版本,相应地wxbase28u.lib中的u代表的是UnicodeRelease版本。Unicode是统一的字符编码标准,采用双字节对字符进行编码,支持多语言,有利于国际化,处理更方便,所以选择编译成Unicode版本。
 
接下来对MS Visual Studio 2010开发环境进行设置:
 
首先新建一个空的误win32工程,并对其属性进行设置,点击Project->Properties,进入属性设置界面:
C/C++ 这个项目没有的话,在源文件随便建立一个文件比如:helloworld.cpp
 
C/C++->General->Additional Include Directories: "D:\wxWidgets-2.8.12\include";"D:\wxWidgets-2.8.12\include\msvc"
(C/C++->常规->附加包含目录)
 
Linker->General->Additional Library Directories: "D:\wxWidgets-2.8.12\lib\vc_lib"
(链接器->常规->附加库目录)
 
Linker->Input->Additional Dependencies:(链接器->输入->附加依赖项)
 
wxbase28u.lib
wxtiff.lib
wxjpeg.lib
wxpng.lib
wxzlib.lib
wxregexu.lib
wxexpat.lib
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
 
版本不同这里会有些不同,我这边使用的是2.8.12版本。
 
期间遇到的问题:刚开始系统安装的集成开发环境是vc6.0,尝试参照网上介绍使用命令行方式编译D:\wxWidgets-2.8.12,但出现系统不认nmake命令的问题,也不会解决,便改为使用编辑器直接编译的方式。之后将vc6换为MS Visual Studio 2012,编译顺利。
 
刚开始编译的是wxWidgets Debug版本,调试程序过程中出现类似minimal.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall wxApp::Initialize(int &,wchar_t * *)" (?Initialize@wxApp@@UAE_NAAHPAPA_W@Z) 的错误,经检查发现项目版本属性设置有问题,点击选项卡Property Manager,显示为项目的Debug和Release版本设定的属性,右击某个属性选择Properties,对属性进行修改,将General|Character Set由Use Unicode Character Set改为Not Set即可!
 
如果出现
错误 1 error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用 E:\web2013\wxWin5\wxWin5\MSVCRTD.lib(crtexew.obj) wxWin5
 
没关系 ,是因为你的程序是空项目的关系,写上你的代码就ok了。
 
 
 
 
VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。
在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,解决方案为:
第一步:与上相同。
第二步:将 项目|项目属性|配置属性|连接器|清单文件|嵌入清单 “是”改为“否”。
第三步:一般计算机经过上两步设置就能解决问题了,但是如果还有问题,那就按一下方法解决:
计算机是否为64bit操作系统,如是,继续2。
查找是否有两个cvtres.exe。一个是C:\Program Files(x86)\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe, 另一个是C:\Windows\Microsoft.NET\Framework\v
4.0.30319\cvtres.exe。右键属性|详细信息 查看两者版本号,删除/重命名较旧的版本,或者重新设置Path变量。

意外的是,治本的办法是第三步,删除旧版本的cvtres.exe后,就不需要每次都设置配置了。

来自TCNET 转载请保留www.nbtcnet.com

返回列表