Code::Blocks配置GTK+2和GTK+3

一:安裝codeblock10.05和GTK+開發包

  1. http://www.codeblocks.org 下載最新版的codeblock,我一般會選擇帶MinGW編譯器的版本!
    文件名是codeblocks-12.11mingw-setup.exe或者其他版本,下載完成后運行安裝文件,一步步安裝到結束。
  2. 下載安裝GTK+開發包
  • For GTK+2:
    http://www.gtk.org/ 下載GTK+開發包,注意是下載all-in-one bundle,但不要下載2.24.10這個版本,因為該版本的開發包有嚴重Bug,并不能正常使用,建議下載gtk+-bundle_2.16.6-20100912_win32.zip,因為64位的我下載后配置好像有點問題,不過你也可以自己試試。
  • For GTK+3
    gtk官方到目前為止還沒有提供GTK+3的開發包和運行時,不過網上的很多大牛都自己編譯了GTK+3的開發包,
    你可以用google搜索!這里我推薦 http://www.tarnyko.net/ 提供的GTK+3,主頁默認是法語,但有英語頁面!
    進入 http://www.tarnyko.net/dl/ 下載頁面后選擇下載gtk+-bundle_3.6.4-20130513_win32.zip

下載完成后將其解壓,解壓后得到的文件放到了C:\gtk+目錄下,注意這個gtk+目錄是需要自己建的,不過建議最好不要放在C盤里面,這里只是舉個例子。


二:設置環境變量

我使用的是win7 64位系統,設置方法如下:

點擊開始菜單,之后右鍵單擊“計算機”–>“屬性”在側邊欄選擇“高級系統設置”->在彈出的窗口選擇"高級"標簽頁–>“環境變量”,我是建立在"用戶變量"里,當然你也可以建立在“系統變量”里,按新建,依次添加,注意如果變量名已經存在,例如PATH,那就按編輯按鈕,然后在原有的變量值后面加入新的變量值,每個變量值之間用分號隔開。環境變量設置主要包括以下幾個:

變量名 變量值
GTK_HOME C:\gtk+
INCLUDE C:\gtk+\include
LIB C:\gtk+\lib
PATH C:\gtk+\bin

三:配置codeblock

  • For GTK+2:
    啟動codeblock,點擊"File"->"New"->"GTK+ Project"創建一個GTK+2項目.
  • For GTK+3:
    啟動codeblock,點擊"File"->"New"->"Empty Project"創建一個空項目.

由于codeblocks目前只支持GTK+2,所以這里只好建立一個空項目然后自己設置。

點擊"Project"->"build options"

  1. 選擇“Compiler settings”標簽中的Other options子標簽
    加入編譯選項

     -mms-bitfields  
    

選項解釋:編譯GTK程序必須的選項

  1. 選擇“Linker settings”標簽
    在"Link libraries"中點擊"Add"按鈕加入gtk+lib,注意在彈出的文件選擇對話框中將c:\gtk+\lib\目錄下的文件全選就就可以將所有選中的文件一次性加入了,不需要一個一個的加入。
    在Other Linker options加入鏈接選項

     -mwindows 
    

選項解釋:告訴編譯器去編譯一個窗口程序,生成的程序可以去掉控制臺。
如果你正在寫一個終端程序或需要在終端調試信息,那么不要加這個選項!

  1. 選擇“Search directories”標簽
    在"Compiler"子標簽中加入GTK+include的路徑,這里比較郁悶,只能一條條的添加,所以用到那個功能加那個功能吧.

    C:\gtk+\include 
    C:\gtk+\include\atk-1.0 
    C:\gtk+\include\atk-1.0\atk 
    C:\gtk+\include\cairo 
    C:\gtk+\include\fontconfig 
    C:\gtk+\include\freetype2 
    C:\gtk+\include\freetype2\freetype 
    C:\gtk+\include\freetype2\freetype\config 
    C:\gtk+\include\gail-1.0 
    C:\gtk+\include\gail-1.0\gail 
    C:\gtk+\include\gail-1.0\libgail-util 
    C:\gtk+\include\gdk-pixbuf-2.0 
    C:\gtk+\include\gdk-pixbuf-2.0\gdk-pixbuf 
    C:\gtk+\include\gio-win32-2.0 
    C:\gtk+\include\gio-win32-2.0\gio 
    C:\gtk+\include\glib-2.0 
    C:\gtk+\include\glib-2.0\gio 
    C:\gtk+\include\glib-2.0\glib 
    C:\gtk+\include\glib-2.0\gobject 
    C:\gtk+\include\gtk-2.0 
    C:\gtk+\include\gtk-2.0\gdk 
    C:\gtk+\include\gtk-2.0\gtk 
    C:\gtk+\include\libpng14 
    C:\gtk+\include\pango-1.0 
    C:\gtk+\include\pango-1.0\pango 
    C:\gtk+\include\pixman-1 
    C:\gtk+\lib\glib-2.0\include 
    C:\gtk+\lib\gtk-2.0\include 
    C:\gtk+\lib\libffi-3.0.12\include 
    

    一般來說就這些,如果安裝了新的庫再加。

  2. 點擊"Setting"->"Global Variables..."會彈出一個"Global Variable“的窗口,在這里配置gtk的編譯選項,

base       C:\gtk+ 
include    C:\gtk+\include 
lib        C:\gtk+\lib 
cflags     `pkg-config --cflags gtk+-3.0` 
lflags     `pkg-config --libs gtk+-3.0` 

然后就可以編譯gtk+程序了,如果沒有安裝GTK+運行時,運行gtk+程序還會報錯,這需要將C:\gtk+\bin下的所有DLL文件都復制到項目的bin\Debug目錄下,之后就可以運行了。


四:問題

  • 問題
    ld.exe||cannot open output file bin\Debug\test.exe Permission denied|||=== Build finished: 1 errors, 0 warnings ===|
    編譯出現這個錯誤是什么原因?

  • 答案
    新的數據無法寫入\Debug\test.exe文件,這是因為原來的那個test.exe程序還在運行,在進程管理器里把它殺掉就好了。


更多參考:
[1]http://blog.csdn.net/dhx20022889/article/details/13770095
[2]http://blog.csdn.net/stereohomology/article/details/37729289
[3]http://blog.163.com/lixiangqiu_9202/blog/static/5357503720139260114656/
[4]http://blog.csdn.net/chszs/article/details/4006814
[5]http://www.cnblogs.com/pingf/archive/2009/06/30/1514126.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,533評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,055評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,365評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,561評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,346評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,889評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,978評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,118評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,637評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,558評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,739評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,246評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,980評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,619評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,347評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,702評論 2 370

推薦閱讀更多精彩內容