愛悠閑 > ubuntu eclipse 下驚醒GTK的配置(全)

ubuntu eclipse 下驚醒GTK的配置(全)

分類: c++  |  作者: dasgk 相關  |  發布日期 : 2014-06-15  |  熱度 : 2°

偶然的想法想玩玩GTK,因為Qt就是對gtk的C++封裝,想著gtk應該比qt更高的執行效率吧,下面分享下自己搭建的過程。

 

1、我的ubuntu虛擬機是安裝了eclipse+cdt的,如果是安裝了eclipse沒有安裝CDT,則要安裝CDT: 
     .可以在Eclipse update中輸入以下地址來安裝:http://download.eclipse.org/tools/cdt/releases/ganymede

     .也可以下載CDT Master update : http://download.eclipse.org/tools/cdt/releases/ganymede/ 然后也是在Eclipse Update中選用本地路徑來安裝   CDT。具體路徑為:Help-->Software updates-->Available Software,選擇Add site-->local,然后把剛才下載好的CDT Master導入。最后在左邊列表選項中選擇CDT,右鍵選擇安裝就可以了。 

 

2、安裝相關依賴包

1 sudo apt-get install gnome-core-devel
2 sudo apt-get install libglib2.0-doc libgtk2.0-doc
3 sudo apt-get install devhelp
4 sudo apt-get install glade-gnome glade-common glade-doc
 
上面的幾個我都沒有安裝,我直接運行 sudo apt-get install libgtk2.0-dev libgnome2-dev ,這條命令最后沒有執行完,系統提示需要升級update后才可以,在筆者測試過程中發現,兩種方法都可以進行測試成功,但是 sudo apt-get install libgtk2.0-dev libgnome2-dev,該種方法,可能會有漏洞,編譯過程中,會有提示缺少文件,所以還是建議,使用上述四種安裝方法,除了第一個安裝過程可能比較慢以外,其他三種都很快的。
   $ : pkg-config --modversion gtk+-2.0    輸出: 2.20.1
 

如果是在終端下直接編譯的話,可以方便的輸入GTK+的include、lib依賴,即在gcc 命令后加上`pkg-config --cflags --libs gtk+-2.0`注意`這個符號是1簽名那個鍵,還有在這段字符之前加個空格)。

比如:gcc -o testGtk `pkg-config --cflags --libs gtk+-2.0` testGtk.c

 

3、在Eclipse下開發效率略高。用法:新建project new->c project,然后對這個project按如下步驟配置:
在project->properties->c/c++ build 下 Setting : 在GCC C Complier下Miscellaneous的other flags追加
`pkg-config --cflags --libs gtk+-2.0`注意`這個符號是1簽名那個鍵,還有在這段字符之前加個空格)。

同樣的方法在GCC C Linker下Miscellaneous的Linker flags(注意是Linker flags不是Other options)下添加`pkg-config --cflags --libs gtk+-2.0`注意`這個符號是1簽名那個鍵,還有在這段字符之前加個空格)。另外)右鍵項目->Properties->C/C++ Build->Settings->GCC C Compiler->Directories,加入/usr/include/gtk-2.0 和 /usr/include/glib-2.0 這個是為了方便智能提示。

這樣如果還不行,並且出現了/bin/sh: 1: gcc-pthread: not found該提示,那麼在Properties->C/C++ Build->Settings->GCC Linker-中的Command Line pattern中的${INPUTS}放在${COMMAND}的後面,這樣就大功告成了,但是,如果中途出現No such file 這樣的錯誤提示的華,那麼就需要針對不同的文件進行不同的處理

引用blog.sina.com.cn/s/blog_4c02ba150101mpq8.html的解決辦法,就可以解決

錯誤記錄

<1>

In file included from../../../third-party/distrib/sdl-1.2.12/src/video/x11/SDL_x11dyn.c:26:0:
../../../third-party/distrib/sdl-1.2.12/src/video/x11/SDL_x11dyn.h:39:33:fatal error: X11/extensions/XShm.h: No such file or directory
compilation terminated.
make[2]: *** [SDL_x11dyn.lo] Error 1

解決:

sudo apt-get install x11proto-xext-dev

sudo apt-get install  xorg-dev

<2>/usr/bin/ld: cannot find–liconv

解決:下載 libiconv 鏈接地址

$tar xvf libiconv-1.14.tar.gz

$cd libiconv-1.14

$./configure –prefix=/usr/local

$make;

錯誤記錄

<2.1>./stdio.h:1010:1: error:'gets' undeclared here (not in a function)

解決:參見http://forum.z27315.com/topic/15662-解決編譯libiconv時的gets-undeclared-here錯誤/

修改srclib/stdio.in.h 第695行

如下:

//_GL_WARN_ON_USE (gets, "gets is a securityhole - use fgets instead");
#if defined(__GLIBC__) &&!defined(__UCLIBC__) &&!__GLIBC_PREREQ(2, 16)
_GL_WARN_ON_USE (gets, "gets is a security hole -use fgets instead");
#endif

 

<3>touchscreen_s3c6410/touchscreen_s3c6410.h:4:21:fatal error: gtk/gtk.h: No such file or directory

解決:sudo apt-get install libgtk2.0-dev

<4>/usr/include/glib-2.0/glib/gtypes.h:34:24:fatal error: glibconfig.h: No such file or directory

解決:

sudo cp/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h /usr/include/
<5>

/usr/include/gtk-2.0/gdk/gdkscreen.h:31:19: fatal error:cairo.h: No such file or directory

解決:

sudo cp /usr/include/cairo/*  /usr/include/

<6>fatal error: pango/pango.h: Nosuch file or directory

解決:cp -r /usr/include/pango-1.0/pango/ /usr/include/

<7>fatal error: gdkconfig.h: Nosuch file or directory

解決:cp /usr/lib/x86_64-linux-gnu/gtk-2.0/include/gdkconfig.h/usr/include/

<8>)fatal error:gdk-pixbuf/gdk-pixbuf.h: No such file or directory compilationterminated.

解決:

sudo cp -r /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/usr/include/

<9>fatal error: atk/atk.h: No suchfile or directory

解決:cp -r /usr/include/atk-1.0/atk/ /usr/include/

還有一點,就是可能在我們進行文件或者文件夾的復制過程中出現文件找不到的錯誤,這樣的話,我們可以在自己的電腦上對該文件進行搜索,找到之后查看屬性,就能知道該文件的路徑了,然后修改下源文件路徑即可。如果在文件的復制過程中出現權限拒絕,就在最前面加上sudo,我想這點就不用我說了吧...

這樣,最後就能在eclipse中進行圖形界面的開發了....好糾結的說...


快乐彩中奖说明