一、CodeBlocks 20.03
1.去CodeBlocks官網下載下傳 codeblocks-20.03mingw-nosetup.zip
2.解壓到c:\codeblocks2003
3. Add C:\codeblocks2003\MinGW\bin\ 到系統的Path變量。l
二、.wxWidgets 3.1.5
1.如果不需要靜态連結wxWdigets庫,可以直接去wxWidgets官網下載下傳wxWidgets-3.1.5-headers.7z 與 wxMSW-3.1.5_gcc810_x64_Dev.7z 這2個檔案。
2.把wxWidgets-3.1.4-headers.7z 解壓到C:\Data\wxWidgets目錄裡。
注意:解壓後的目錄結構為C:\Data\wxWidgets\include
3.把wxMSW-3.1.4_gcc810_x64_Dev.7z解壓到C:\Data\wxWidgets目錄裡并把目錄lib\gcc810_x64_dll重命名為lib\gcc_dll
注意:解壓後的目錄結構為C:\Data\wxWidgets\lib\gcc_dll
wxWidgets的設定
1.菜單settings->Global Variables
2.單擊按鈕New
3.輸入wx,确定
4.base,設為C:\Data\wxWidgets
建立wxWidgets工程
1.wxWidgets vision選wxWidgets 3.1.x
2.Preferred Gui Builder選 wxSmith
3.Application Type選 Frame Based
4.wxWidgets location 設為$(#wx)
5.wxWidgets Library Settings選 User wxWidgets DLL與Enable unicode
6. 勾選Create Empty Project和Configure Advanced Options
7. Debug Target和Release Target選GUI Mode Application
或者建立後在Project--Properties--Build targets上工程類型從Console application改為GUI application. 不然會在運作時出現控制台視窗。注:其實控制台界面可以用 标準輸入輸出 來調試函數,免去了用MessageBox的麻煩,釋出可執行檔案時再改為GUI Application。
Wxwidgets程式的靜态連結
wxWidgets網站上下載下傳的隻有DLL庫,需要自己編譯靜态庫。
使用git 下載下傳代碼倉庫,不然不會有第三方的庫,比如expat, zlib等。不嫌麻煩也可以一個一個在wxWidgets的github網站上下載下傳好再解壓到對應的源碼目錄,例如https://github.com/wxWidgets/libexpat:
- git clone --recurse-submodules -j4 https://github.com/wxWidgets/wxWidgets.git
- 或者
- git clone https://github.com/wxWidgets/wxWidgets.git
- cd wxWidgets
- git submodule update --init --recursive
- git submodule init
- git submodule update
- git checkout -b 3.1.5 v3.1.5
1. 編譯Wxwidgets靜态庫
dos視窗下,進入wxWidgets編譯目錄build\msw, 執行如下指令
mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=0 UNICODE=1 2> err.log
mingw32-make -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=0 UNICODE=1 2> err.log
2. 建立wxWidgets工程時,不要選擇“Use wxWidgets DLL”
進入project->build options
a)選擇Compiler settings,
在Other options中,删除-mthreads
b)選擇Linker settings,
在Other linker options中,删除-mthreads,然後輸入如下内容
--disable-mthreads -static-libstdc++ -static-libgcc
此時還需要MinGW64中的libwinpthread-1.dll,否則報無法正常啟動(0xc000007b)
繼續增加“ -Wl,-Bstatic -lstdc++ -lpthread -Wl,-Bdynamic” 注意 -lstdc++ 在 -lpthread 之前。
完整的Other linker options:
--disable-mthreads -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lpthread -Wl,-Bdynamic
Release版本的wxWidgets Hello World例程.exe大小為6.6MB。
錯誤處理
fatal error: wx/setup.h: No such file or directory
檢視gcc編譯的指令行,看-I選項包含的頭檔案目錄。 另外靜态連結時,即使時Debug版本還是搜尋release版本的庫目錄裡的gcc_lib\mswu\wx\setup.h 。u