wxWidgets初學者導引(2)——下載、安裝wxWidgets

來源:互聯網
上載者:User

wxWidgets初學者導引全目錄   PDF版及附件下載1 前言
2 下載、安裝wxWidgets
3 wxWidgets應用程式初體驗
4 wxWidgets學習資料及利用方法指導
5 用wxSmith進行可視化設計
附:學習材料清單
2 下載、安裝wxWidgets

  這方面的資料從網路可以找到不少。wxWidgets的文檔,要涵蓋各種作業系統和編譯環境,難免讓人有點無所適從。這對初學者,是災難。

  以下文字,適合於大部分初學者的工作環境。為能邊看邊做,請確認:(1)你用的是Windows作業系統(強烈建議初學者進階後,適時開啟Linux下開發的體驗);(2)已經安裝了Code::Blocks(版本不限,但也別太低了);(3)Code::Blocks使用gcc編譯器,隨Code::Blocks的安裝已經裝好。


2.1 下載wxWidgets

  wxWidgets的官網在http://www.wxwidgets.org/downloads/,下載頁面是http://www.wxwidgets.org/downloads/。

  作為Windows使用者,從下載頁面下載如下畫圈的兩個檔案。Windows.ZIP是wxWidgets的原始碼,Manual(HTML).zip則是在學習過程中最重要的參考(即前述的線上文檔)。在4.2節中,將專門介紹線上文檔的使用。

   

  下載後,將檔案Windows.ZIP解壓縮,是我解壓縮後的結果,我將其解壓到了F:/wxWidgets-3.0.0中。後文中,我將用X:/wxWidgets-3.0.0表示這個檔案夾,X代表你選擇的盤符。

   


2.2 為什麼要自己編譯wxWidgets

  一般的Windows應用程式,總是有一個安裝程式(常常是setup.exe),只要運行這個程式,就可以將軟體安裝好。

  wxWidgets不是這樣。下載得到的,不是能啟動並執行程式,而是wxWidgets的原始碼!開源軟體提供給使用者原始碼,你可以直接閱讀和修改。

  不少開源軟體也提供安裝程式,使用者安裝後就可以使用。這是適用於軟體的使用者的方式,而不是針對開發人員的方式。

  現在,你是開發人員。作為開發人員,常是下載原始碼後,自己編譯。這對於福士是高要求,但對專業人員,卻是常用的套路。

  wxWidgets不是一般的應用程式,是為支援應用程式開發的平台。wxWidgets面對的是在不同作業系統(Linux、unix、Windows、Mac OS)下工作的開發人員,他們使用的C++編譯器(GCC家族、MS家族、Borland家族及其他各種)形形色色、版本各異。wxWidgets不便於提供各種組合下的安裝程式。開發人員下載源碼,自己編譯自己用。這種方式,建立的是最適合自己的環境。

  實際上,不這樣做,往往得不到適合自己的開發環境。

  所以,下面的步驟或許會有點挑戰性。但不要有牢騷。這樣做一遍,你作為開發人員的成色,就更足一些。

  實際上,wxWidgets中還提供了一個稱為wxPack的編譯好的版本,可以用於直接安裝。在我的體驗中,最新的wxPack使用的GCC版本低了,安裝順利,但卻不能正確運行在我的開發環境中寫的程式。這種方法,不推薦使用。


2.3 編譯wxWidgets前的準備

  編譯wxWidgets,要先準備好編譯器,並且配置好運行編譯器的“環境”。

  對於初學者,安裝Code::Blocks時,選擇帶GCC編譯器的安裝檔案進行安裝。單獨安裝的GCC編譯器,也可以在Code::Blocks中通過設定進行工作。

  總之先找到Code::Blocks所在的檔案夾(後文中我用“X:\CodeBlocks\”代表,X:\CodeBlocks\要替換為你使用的實際檔案夾名)。隨Code::Blocks安裝的GCC,在Code::Blocks安裝資料夾的MinGW子檔案夾中,開啟X:\CodeBlocks\MinGW\bin,其中的檔案,如所示,就是支援你的C++工作的GCC系列程式。

   

  記下這個檔案夾名(簡單辦法,將路徑複製下來,暫時粘貼到一個文字檔中備用)。下面要配置運行編譯器的“環境”,確切地說,只需要設定“路徑”(PATH)即可。

  在Win7中,滑鼠右擊案頭上的“電腦”表徵圖,選菜單中的“屬性”,接下來,就是如中從1到6的一系列操作,將“變數名”為PATH的“變數值”,在原有值的後面加一個英文的分號,再加入你記下的X:\CodeBlocks\MinGW\bin。注意,不要將原有的內容替換掉,而是追加你你需要的路徑即可。

   

  其他版本的Windows,找到“系統屬性”對話方塊的方式可能會稍有不同,最終的目標都是設定好PATH的值。

  還有別一種方式,直接用DOS命令做。有不少資料中講這種做法,本文不做介紹。


2.4 編譯wxWidgets

  編譯wxWidgets的事情需要用命令列的方式完成。


2.4.1 用命令列編譯wxWidgets

  從“開始”菜單->附件,運行“命令提示字元”(有的系統稱“MS-DOS方式”),在命令列下分別輸入下面的命令:

命令

解釋

X:(斷行符號)

當前盤置為X,X是你解壓縮wxWidgets用的盤符。

cd \wxWidgets-3.0.0\build\msw(斷行符號)

目前的目錄置為/wxWidgets-3.0.0\build\msw,可以查看這個檔案夾中的檔案,msw是專供微軟(ms)的Windows(w)用的編譯需要的檔案(註:wxWidgets的C++原始碼在\wxWidgets-3.0.0\src中)。

gcc -v(斷行符號)

這個命令並非必須,意在檢查剛才的路徑設定是否正確。的輸出,表明在X:/wxWidgets-3.0.0\build\msw目錄中,可以運行X:\CodeBlocks\MinGW\bin中的命令。還可以看到,當前使用的GCC版本是4.7.1。

  是我運行上表中的命令出現的結果:

   

  下面就可以要開始編譯wxWidgets了。就在DOS提示符後面,輸入下面的命令:

mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug

  編譯的過程會比較慢,會有幾十分鐘。幹點別的,或者就看著螢幕上看不懂的提示發獃也好。理想情況是,順利完成編譯。


2.4.2 意外處理

  我在編譯wxWidgets中,苦等幾十分鐘,等來了一個error,最後兩行提示是:

gcc_mswuddll\monodll_xh_bmpcbox.o: file not recognized: Memory exhausted  collect2.exe: error: ld returned 1 exit status  

  出現這種情況的,到http://blog.csdn.net/sxhelijian/article/details/25749505中的“問題1”,看原因解釋以及對策。


2.4.3 多知道一點

  用上面的命令編譯後,可以滿足學習的需求了。如果還想體驗,以及支援將來生產用於發布的程式版本,可以在SHARED和BUILD參數的選取上再做些組合。

  • SHARED的取值可以是1或0,代表產生的是動態連結程式庫(1)和靜態連結庫(0)。兩者的區別不解釋,以後將明白,或者自行百度之。
  • BUILD的取值可以是debug或release,代表在應用程式開發時,產生的可執行檔是調試版本(debug)還是發布版本(release)。

  所以可以啟動並執行命令還有3個:

mingw32-make -f makefile.gcc  MONOLITHIC=1 SHARED=0 UNICODE=1 BUILD=debugmingw32-make -f makefile.gcc  MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=releasemingw32-make -f makefile.gcc  MONOLITHIC=1 SHARED=0 UNICODE=1 BUILD=release

  關於這些參數的解釋,參考http://blog.csdn.net/sxhelijian/article/details/25749505中的“問題2”部分。




================= 迂者 賀利堅 CSDN部落格專欄=================|== IT學子成長指導專欄 專欄文章的分類目錄(不定期更新) ==||== C++ 課堂線上專欄  賀利堅課程教學連結(分課程年級) ==||== 我寫的書——《逆襲大學——傳給IT學子的正能量》    ==|===== 為IT菜鳥起飛鋪跑道,和學生一起享受快樂和激情的大學 =====


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.