最近在了解gtk+-3.0介面開發相關,由於自身用的系統環境是windows,開個linux虛擬機器來開發的話總歸是麻煩了點,於是開始尋找 windows上快捷搭建 gtk+-3.0 編譯環境的方法,在經過嘗試後,大概有三種辦法,下面會對這些方法進行詳細介紹。
第一種方法便是是使用 msys2 跨平台編譯環境,安裝 mingw32 直接在控制台中使用命令對 gtk+-3.0 工程進行編譯,基於 msys2 的 mingw32 編譯環境的具體搭建方法可以參考我之前的文章:
當我們搭建完環境後,開啟 mingw32 環境安裝 gtk+-3.0 開發庫,如下
administrator@mrrobot-pc mingw32 ~
# pacman -ss gtk3 //查詢安裝包
mingw32/mingw-w64-i686-gtk3 3.24.23-1 [已安裝]
...administrator@mrrobot-pc mingw32 ~
# pacman -s mingw-w64-i686-gtk3
administrator@mrrobot-pc mingw32 ~
# pacman -s mingw-w64-i686-pkg-config
接著我們新建乙個 gtk+-3.0 原始碼檔案main.c
#include #include int main()
然後使用下面的命令進行編譯
gcc main.c `pkg-config --cflags --libs glib-2.0 gtk+-3.0` -o helloword
這種方法就是比較原始的方法了,但是我們後續的方法都是基於這個 msys2的mingw32 環境來展開的
這種辦法就是使用ide了,要比上面的方法方便太多,這裡最主要的是這個 visualgdb ,這是個vs的跨平台開發外掛程式,是收費的。所以如果你要使用的話,可能需要去找個特別版本,網上可以搜到。
後續的設定如圖所示
toolchain選項需要設定成你安裝 msys32 的位置
然後工程新建完畢,我們在工程上右鍵,選擇 visualgdb 設定,設定如下:
然後大家就可以愉快的開發的! 這種方法相對於第一種方法要簡單,但是我依舊感覺每次新建工程都要配置一堆引數是很蛋疼的事情,所以我接著尋找
這個方法是我推薦的方法,超級簡單,首先我們配置一下編譯器
settings --- compiler
然後需要做的就是自定義乙個 gtk+-3.0 的工程嚮導模板,因為自帶的只有 gtk+-2.0 的,如圖:
如圖,這個 gtk+-3.0 project 是我自定義的工程模板,新建完後工程如下:
提取碼: cycy
然後解壓後放到 codeblock 的 wizard 目錄,我的是
c:\program files\codeblocks\share\codeblocks\templates\wizard
然後修改該目錄下的 config.script 檔案,註冊我們的工程模板
registerwizard(wizproject, _t("gtk3"), _t("gtk+-3.0 project"), _t("gui"));
然後啟動 codeblocks 新建工程就可以看到我們的工程模板了,在這個介面是可以右鍵對模板進行修改的,修改後後續可以隨時右鍵恢復。如果沒有出現模板,那麼請在這個新建介面右鍵編輯全域性檔案,ide會開啟 config.script 檔案讓我們修改,修改完後重啟 codeblocks 即可
這種方式感覺是最好的方法,linux上也可以使用它進行gtk+-3.0開發
安裝matlab後引起編譯gtk3的問題
安裝matlab後要追加庫的搜尋路徑 opt matlab r2012a bin glnxa64造成編譯gtk3程式出現 gcc o helloworld helloworld.o lgtk 3 lgdk 3 latk 1.0 lgio 2.0 lpangocairo 1.0 lgdk pixbuf...
GTK 3 for Windows 開發環境搭建
配置軟體源 官方源速度較慢 需要修改安裝目錄下,etc pacman.d 資料夾中的mirrorlist.msys,mirrorlist.mingw64,mirrorlist.mingw32 三個檔案,分別在檔案開始處新增 mirrorlist.msys 中國科學技術大學開源軟體映象 server ...
GTK 3 for windows 開發環境搭建
配置軟體源 官方源速度較慢 需要修改安裝目錄下,etc pacman.d 資料夾中的mirrorlist.msys,mirrorlist.mingw64,mirrorlist.mingw32 三個檔案,分別在檔案開始處新增 mirrorlist.msys 中國科學技術大學開源軟體映象 server ...