安裝wxwidgets遭遇的兩大關卡」(簡稱「前文」)。
先推薦一下這兩天找到的學習材料。
部落格中有乙個系列教程,貌似作者沒有寫完,見
《跟我學wxwidgets開發》系列教程。
要看書,就
《使用wxwidgets進行跨平台程式開發》。我給的鏈結中,包括中書中的原始碼。這本書,是
《cross platform gui programming with wxwidget》的中譯本,譯本中沒有附錄部分,我看了英文版的,可讀性還不錯。
通過瀏覽書,發現了前文中說過的問題。看書、實踐交叉著來,學習效率自然高。
從最全的資料,在wxwiki——
再次感受開源的力量。
前文通過編譯wxwidgets2.8.7,搞清楚了基本的「路數」。看了推出幾個月的3.0.0版,看給出的改進不少,決定解除安裝昨天做的工作,再來一遍。
放棄wxpack還是有些不甘。想著我的大一學生,在他們自己的本本上,如果安裝wxpack就能用,那該是更好的事。他們首先要體驗的,是用wxwidgets做出程式來,而不是在編譯wxwidgets中遇上一堆問題,然後就沒有然後了。
但是用code::blocks在編出程式時,卻出了問題。
先在code::blocks中建立wxwidgets project,用嚮導整出個程式來玩,這是剛開始能做的事。但是,code::blocks12.11中,最高版本只能建立wxwidgets2.8.x版的應用,編譯時,總找不到libwxmsw28ud.a等檔案。難怪,這裡只有libwxmsw30ud.a。該在code::blocks中能夠修改設定,不想找了。
建立,wxwidgets3.0.0中的應用,成了需要做的事情。實際上,要執行書中和網路中找到的案例,不能靠嚮導。
建乙個空專案,如圖1:
我建的專案,名稱為minimal。將專案上的原始檔minimal.cpp拷貝到專案所在資料夾中,在codeblocks中專案名上點右鍵,選add file...將這個檔案加入專案。檔案mondrian.xpm是圖示檔案,也一併拷貝過去(不做,後面也需要補上)。另外,在檔案minimal.cpp上點右鍵,選properties...,在對話方塊中將檔案的唯讀屬性去掉。加入原始檔後的介面如圖2所示:
如果這時編譯,會有一堆錯誤,首先面對的問題,編譯時找不到需要的標頭檔案。
選選單setting->global variables...,保證配置類似圖3(根據你安裝wxwidgets的目錄):
選選單project->build options...,在選項卡search directories中,設定compiler,如圖4所示:
這時再編譯,將不再有語法錯誤,但一大堆問題,來自於連線環節,問題是找不到庫檔案。
選選單project->build options...,在選項卡linker settings中,加入x:\wxwidgets-3.0.0\lib\gcc_dll資料夾中的所有.a檔案,如圖5所示:
然後再編譯,成功!
但是執行程式時,會出現錯誤,如圖6:
按提示來,在x:\wxwidgets-3.0.0\lib\gcc_dll中找到那wxmsw30ud_gcc_custom.dll檔案,將其拷貝到專案所在資料夾,看到了期盼的視窗,如圖7所示。
先這樣做起來,越學越多,知識就這樣積累起來了。
***************== 迂者 賀利堅 csdn部落格專欄***************==|==it學子成長指導專欄
專欄文章的分類目錄(不定期更新)
==||==
賀利堅課程教學鏈結(分課程年級)
==||== 我寫的書——《逆襲大學——傳給it學子的正能量》 ==|
***** 為it菜鳥起飛鋪跑道,和學生一起享受快樂和激情的大學 *****
wxWidgets 國際化程式設計
一 編譯工具 工欲善其事 必先利其器,想要實現國際化程式設計,必須具備gettext軟體,可以去http sourceforge.net projects gettext 二 生成mo檔案 此工作在wxwidgets提供的internat例子中都已經詳細說明,下面簡單敘述一下 先建立目錄,目錄名要用...
wxWidgets程式設計注意事項
1.在類中定義物件 wxauimanager m mgr 編譯無法通過,輸出類似錯誤 demo demo.o in function myframe myframe demo.cpp text 0x6491 undefined reference to wxauimanager uninit dem...
起步socket程式設計 C
用c 來編寫socket程式,總的來說還是比較方便的,微軟幫忙我們做了很多任務作。socket程式設計應用很多,相關資料網上也很多,因為工作需要,前一段時間也用c 編寫乙個socket程式,在這裡寫一下也算乙個記錄。在伺服器端建立乙個socket,使用bind方法繫結所指定的介面使socket與乙個...