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

一:安裝codeblock10.05和GTK+開(kāi)發(fā)包

  1. http://www.codeblocks.org 下載最新版的codeblock,我一般會(huì)選擇帶MinGW編譯器的版本!
    文件名是codeblocks-12.11mingw-setup.exe或者其他版本,下載完成后運(yùn)行安裝文件,一步步安裝到結(jié)束。
  2. 下載安裝GTK+開(kāi)發(fā)包
  • For GTK+2:
    http://www.gtk.org/ 下載GTK+開(kāi)發(fā)包,注意是下載all-in-one bundle,但不要下載2.24.10這個(gè)版本,因?yàn)樵摪姹镜拈_(kāi)發(fā)包有嚴(yán)重Bug,并不能正常使用,建議下載gtk+-bundle_2.16.6-20100912_win32.zip,因?yàn)?4位的我下載后配置好像有點(diǎn)問(wèn)題,不過(guò)你也可以自己試試。
  • For GTK+3
    gtk官方到目前為止還沒(méi)有提供GTK+3的開(kāi)發(fā)包和運(yùn)行時(shí),不過(guò)網(wǎng)上的很多大牛都自己編譯了GTK+3的開(kāi)發(fā)包,
    你可以用google搜索!這里我推薦 http://www.tarnyko.net/ 提供的GTK+3,主頁(yè)默認(rèn)是法語(yǔ),但有英語(yǔ)頁(yè)面!
    進(jìn)入 http://www.tarnyko.net/dl/ 下載頁(yè)面后選擇下載gtk+-bundle_3.6.4-20130513_win32.zip

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


二:設(shè)置環(huán)境變量

我使用的是win7 64位系統(tǒng),設(shè)置方法如下:

點(diǎn)擊開(kāi)始菜單,之后右鍵單擊“計(jì)算機(jī)”–>“屬性”在側(cè)邊欄選擇“高級(jí)系統(tǒng)設(shè)置”->在彈出的窗口選擇"高級(jí)"標(biāo)簽頁(yè)–>“環(huán)境變量”,我是建立在"用戶變量"里,當(dāng)然你也可以建立在“系統(tǒng)變量”里,按新建,依次添加,注意如果變量名已經(jīng)存在,例如PATH,那就按編輯按鈕,然后在原有的變量值后面加入新的變量值,每個(gè)變量值之間用分號(hào)隔開(kāi)。環(huán)境變量設(shè)置主要包括以下幾個(gè):

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

三:配置codeblock

  • For GTK+2:
    啟動(dòng)codeblock,點(diǎn)擊"File"->"New"->"GTK+ Project"創(chuàng)建一個(gè)GTK+2項(xiàng)目.
  • For GTK+3:
    啟動(dòng)codeblock,點(diǎn)擊"File"->"New"->"Empty Project"創(chuàng)建一個(gè)空項(xiàng)目.

由于codeblocks目前只支持GTK+2,所以這里只好建立一個(gè)空項(xiàng)目然后自己設(shè)置。

點(diǎn)擊"Project"->"build options"

  1. 選擇“Compiler settings”標(biāo)簽中的Other options子標(biāo)簽
    加入編譯選項(xiàng)

     -mms-bitfields  
    

選項(xiàng)解釋:編譯GTK程序必須的選項(xiàng)

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

     -mwindows 
    

選項(xiàng)解釋:告訴編譯器去編譯一個(gè)窗口程序,生成的程序可以去掉控制臺(tái)。
如果你正在寫(xiě)一個(gè)終端程序或需要在終端調(diào)試信息,那么不要加這個(gè)選項(xiàng)!

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

    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 
    

    一般來(lái)說(shuō)就這些,如果安裝了新的庫(kù)再加。

  2. 點(diǎn)擊"Setting"->"Global Variables..."會(huì)彈出一個(gè)"Global Variable“的窗口,在這里配置gtk的編譯選項(xiàng),

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+程序了,如果沒(méi)有安裝GTK+運(yùn)行時(shí),運(yùn)行g(shù)tk+程序還會(huì)報(bào)錯(cuò),這需要將C:\gtk+\bin下的所有DLL文件都復(fù)制到項(xiàng)目的bin\Debug目錄下,之后就可以運(yùn)行了。


四:?jiǎn)栴}

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

  • 答案
    新的數(shù)據(jù)無(wú)法寫(xiě)入\Debug\test.exe文件,這是因?yàn)樵瓉?lái)的那個(gè)test.exe程序還在運(yùn)行,在進(jìn)程管理器里把它殺掉就好了。


更多參考:
[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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容