用visual studio 2010編譯wxWidgets 2.9.1
2011.5.24 abloz.com
wxWidgets 是跨平臺的基於GTK+的C++ 開源庫。有點類似於windows平臺的MFC。支援Windows,OSX,Linux和Unix的32位和64位結構。同時還支援一些移動平臺如windows mobile, iPhone SDK和嵌入式GTK+。如果對C++不熟,wxWidgets庫同時還支援python,perl,Ruby和其他的語言的封裝。WxWidgets生成的程式,會讓程式外觀和本地平臺一樣。
wxWidgets最新版本 2.9.1. 點此下載(http://wxwidgets.org/downloads/)。
Windows 提供了一個安裝exe的程式。我將其安裝到D:wxWidgets-2.9.1.
wxWidgets目前預設還不支援vs2010,需要轉換一下工程檔案。
1. 設定環境
vs2010的include環境,只能影響專案。如果要設定全域性的include目錄,需到系統的Path中設定。
Win7 右鍵點桌面的“計算機”->屬性,高階系統設定,環境變數。雙擊系統變數下的Path,變數值增加:
;D:wxWidgets-2.9.1include;D:wxWidgets-2.9.1includemsvc
如果不設環境變數會出現如下的錯誤:
fatal error C1083: Cannot open include file: ‘wx/setup.h’: No such file or directory d:wxwidgets-2.9.1includewxplatform.h
2.用vs2010編譯
進入D:wxWidgets-2.9.1buildmsw,裡面有
wx.dsw
wx_dll.dsw
wx_vc7.sln
wx_vc8.sln
wx_vc9.sln
如果直接將wx_vc9.sln 複製重新命名為wx_vc10.sln,再用vc10開啟,編譯可能會遇到如下的錯誤:
1> 正在建立“vc_mswudauiaui.unsuccessfulbuild”,因為已指定“AlwaysCreate”。 1>C:Program FilesMSBuildMicrosoft.Cppv4.0Microsoft.CppCommon.targets(151,5): error MSB6001: “cmd.exe”的命令列開關無效。路徑的形式不合法。 1> 1>生成失敗。 1> 正在建立“vc_mswudauiaui.unsuccessfulbuild”,因為已指定“AlwaysCreate”。1>C:Program FilesMSBuildMicrosoft.Cppv4.0Microsoft.CppCommon.targets(151,5): error MSB6001: “cmd.exe”的命令列開關無效。路徑的形式不合法。1>1>生成失敗。
因此,應該先用VC6的工程檔案wx.dsw 和wx_dll.dsw來轉為wx.sln, wx_dll.sln,再進行編譯。
然後再用wx_vs10.sln編譯就不會有問題了。
3.用命令列編譯
進入** Visual Studio 命令提示(2010),**切換到
D:wxWidgets-2.9.1buildmsw>
nmake -f makefile.vc
建立庫的DLL。
nmake -f makefile.vc RUNTIME_LIBS=static BUILD=release
建立靜態release庫。
動態庫開關是RUNTIME_LIBS=dynamic
進入samples,同樣執行
nmake -f makefile.vc
編譯例子。
對64位系統,用如下的命令。
如AMD64
nmake -f makefile.vc TARGET_CPU=AMD64
對Intel的Itanium
nmake -f makefile.vc TARGET_CPU=IA64
4.參考
安裝包自帶文件:docsmswinstall.txt
如非註明轉載, 均為原創. 本站遵循知識共享CC協議,轉載請註明來源