1. 程式人生 > >用visual studio 2010編譯wxWidgets 2.9.1

用visual studio 2010編譯wxWidgets 2.9.1

2011-05-24

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協議,轉載請註明來源