兩年多沒玩GTK3了,當初因為GTK3沒有很完備,想自行編譯套件結果失敗,這回看看我們能不能捲土重來,不過我們先參考翻譯下面的這份文件:
釋出你的程式
你應該將所有需要的DLL檔案跟你的執行檔一起供貨,最終使用者不需要自行下載這一包檔案。
需求
GTK+3可以在Windows XP、Vista、7 跟 8上執行。
開發人員會想要有可以運作的MinGW或MSVC安裝。
初始話設定
-
下載最新版的all-in-one bundle,使用解壓縮軟體,按滑鼠右鍵點擊 -> “解壓縮檔案”(以7-Zip為例),選擇你要的位置,在下面的敘述中以%GTKDIR%來稱呼,範例則是以gtk3的資料夾為例。
-
新增 %GTKDIR%bin 檔你的PATH環境變數中:
- Windows XP : 滑鼠右擊”我的電腦” -> “內容”.
- Windows Vista/7 : 滑鼠右擊”電腦” -> “內容” -> “Advanced system settings”.
點擊”進階標籤” -> “環境變數”,在”系統變數”面板中雙擊PATH這一行,新增;%GTKDIR%bin到最後。
-
下面的選項可自由操作,開啟命令提示字元(開始 -> 執行 -> “cmd” 或 開始 -> 尋找 “命令提示字元”) 然後輸入下列命令:
- pango-querymodules > %GTKDIR%etcpangopango.modules
- gdk-pixbuf-query-loaders > %GTKDIR%libgdk-pixbuf-2.02.10.0loaders.cache
- gtk-query-immodules-3.0 > %GTKDIR%libgtk-3.03.0.0immodules.cache
-
讓我測試吧!在命令提示字元或是在”執行”的表單中,執行demo程式:gtk3-demo
使用GTK+3開發程式
MinGW
你應該有可以執行的安裝,例如,”gcc.exe”已經在你的PATH中。
-
在命令提示字元中,確認 “pkg-config” 輸出的資料可以輸入:
pkg-config –cflags –libs gtk+-3.0
-
使用這個輸出資料來進一步編譯,像這樣:
gcc -o gtk3.exe gtk3.c -mms-bitfields -Ic:/gtk3/include/gtk-3.0 -Ic:/gtk3/include/atk-1.0 -Ic:/gtk3/include/cairo […]
-
測試執行結果(這裡gtk3.exe) :
MSVC
-
開啟Visual Studio 命令提示字元 (2010):
-
在命令提示字元中,確認”pkg-config”輸出的資料合理,輸入:
pkg-config –cflags gtk+-3.0
-
使用這個輸出來編譯程式,像這樣:
- 刪除”-mms-bitfields“這個部份字串;
- 新增”-Dinline= /link /libpath:%GTKDIR%/lib gtk-win32-3.0.lib gobject-2.0.lib”這個部份到最後。
例如:
cl gtk3.c -Ic:/gtk3/include/gtk-3.0 -Ic:/gtk3/include/atk-1.0 […] -Dinline= /link /libpath:c:/gtk3/lib gtk-win32-3.0.lib gobject-2.0.lib
(“gtk-win32-3.0.lib gobject-2.0.lib”是最低的需求,你得視會含括什麼函式庫而定,有可能需要加入其他的.lib檔案進來)
-
測試執行結果(這個程式是使用https://developer.gnome.org/gtk3/stable/gtk-getting-started.html這裡的Hello World in GTK+):
- 編譯器
- 設定C和C++ Code::Blocks編譯器的初學者教學指南:如果你苦惱的是編譯器的使用,可以看看設定C和C++ Code::Blocks編譯器的初學者教學指南。
- Code::Blocks 13.12 繁體中文化:如果想要使用code block 中文的朋友可以繼續閱讀Code::Blocks 13.12 繁體中文化,這裡不會有code block中文亂碼的問題。
- 設定Dev-C++ 5.11和MinGW-w64, Windows上免費的C跟C++編譯器
- C跟C++的Apple XCode
- g++簡介
- 使用Microsoft Visual C++ 2010 Express編譯GTK+
- Eclipse+CDT+MinGW 安裝測試
- 編譯器gcc
- Code::Blocks 20.03的安裝設定及繁體中文化