cht電腦資訊Linux
adm Find login register

Fedora 14 GTK 3 無法順利使用

Jerry_yu
1 Fedora 14 GTK 3 無法順利使用
Promote 0 Bookmark 02011-04-25quote  

想請教各位高手一些問題 :

小弟在使用Fedora 14 中的GTK3來編譯我的GTK程式,結果發現會有error產生,以下是我用gcc來編譯的方式 :

gcc image.c -g -o image.c `pkg-config --libs gtk+-3.0`

但會產生出錯誤,已下為我的錯誤訊息 :

/usr/include/gtk-3.0/gtk/gtkapplication.h:57:3: error:expected  specified-qualifier-list  before 'GApplication'

/usr/include/gtk-3.0/gtk/gtkapplication.h:66:3: error:expected  specified-qualifier-list  before 'GApplicationClass'

 

不知道是fedora 14本身再編譯GTK3的時候就會有Bug出來還是小弟在使用gcc有問題,不過我用fedora 14中提供的GTK2 就能夠成功編譯我的程式,所以應該不是我GCC下錯了,想請問有使用過fedora 14中gtk3 的lib 編譯程式的高手們,能夠跟小弟說如何編議成功。

 

萬分感謝~~~

eliu
2
Promote 0 Bookmark 02011-04-25quote  
zerng07
3
Promote 0 Bookmark 02011-04-25quote  

你可以試試看 fedora 維護者的最新測試包。

http://koji.fedoraproject.org/koji/taskinfo?taskID=3023647

幫忙看看有沒有什麼問題再跟貼上來,我會轉告他的 :)。

Jerry_yu
4
Promote 0 Bookmark 02011-04-26quote  

eliu : 昨天有依照您給我的意見去試過,可以看到錯誤訊息,訊息好像跟我的程式沒什麼關係了,但是小弟功力不夠沒辦法解,不過還是謝謝你 ^^

 

zerngo07 : 今天剛試了您給我的修正版本,我用rpm -i gcin-debuginfo-1.6.1.pre13-1.fc15.i686.rpm 的方式 然後reboot 再編譯一次我的程式,不過好像還是有一樣的問題產生,因為怕我的方式錯誤,最後小弟有再用yum 直接升級 gcin 因為看您給我的修正版好像跟gcin有關,所以我想直接升級看看會不會成功,我用 yum insatll gcin 得到了 gcin-1.5.5-3.fc14.i686的版本升級,然後再reboot後重新編譯我的gtk程式,結果好像還是有相同的問題,不知道小弟是否有哪個部份有做錯??再請各位高手指導一下。非常感謝 ~~

eliu
5
Promote 0 Bookmark 02011-04-26quote  

把錯誤的部份貼出來,如果有完整的 file 更好。

這邊有 gtk3 高手就是 caleb,我還沒用過 gtk3 Laughing

Jerry_yu
6
Promote 0 Bookmark 02011-04-27quote  

Hi eliu,

小弟用GCC編譯,編譯的方式如下 : 

gcc image.c -E -g -o image 'pkg-config --cflags --lids gtk+-3.0'

編譯後再執行 ./image,會出現以下的錯誤 :

image : line 34 : typedef : command not found

image : line 36~38 : typedef : command not found 

image : line 112 : _extension_ : command not found

image : line 132 : syntax error near unexpected token 'static _mutex'

image : line 132 : } static_mutex

 

假如是 :

gcc image.c -g -o image 'pkg-config --cflags --lids gtk+-3.0' (沒有-E)

那錯誤是跟之前的是一樣的。

 

以下的GTK code 是我從GTK 3.0 官網抓下來作測試的程式 : (只是一個WINDOW的建立)

#include<gtk/gtk.h>

int
main(int argc,
char*argv[])
{
GtkWidget*window;

gtk_init(&argc,&argv);

 window =gtk_window_new(GTK_WINDOW_TOPLEVEL);

g_signal_connect(window,"destroy",G_CALLBACK(gtk_main_quit), NULL);

gtk_widget_show(window);

gtk_main();

return 0;
}

程式部份大概是這樣了,再麻煩各位高手給小地指點一下。

P.S. 此外想請問這邊有沒有人玩過Gtk openGL~~  最近我也在碰這塊,雖然有將它附給我的範例程式跑起來,不過要拿自己的程式來建置卻有一些問題 @@ 想問問看有沒有人碰過這塊。 = =  總歸一句話,就是我的Linux 還太嫩了。

 

 

 

eliu
7
Promote 0 Bookmark 02011-04-27quote  
caleb
8
Promote 1 Bookmark 02011-04-27quote  

程式碼本身沒問題,用 GTK+ 3.0.9 編譯使用一切正常。不過原 po 從前後文看來,完全是 linux 新手,這才是問題無法解決的根源。

建議:

1. 就我所知 Fedora 14 沒有官方支援 GTK+ 3.x final,backport 也很麻煩,建議改用 Fedora 15 或其它有完整 GTK+ 3.x final 的 distro

2. 先把 linux 基礎摸熟

Jerry_yu
9
Promote 0 Bookmark 02011-04-27quote  

Hi calab,

主要想用gtk3的原因是它再widget好像有加入新的特性"透明特性",而gtk2只有RGB,在gtk2中我怎麼試還是無法讓widget背景變透明,所以才上網看有沒有改善方式,也發現gtk3有支援RGBA才會想要試試看。

也感謝您給我提供的意見,但我看fedora 15好像還沒有release說,所以才改用fedora 14的,不過我會去試試看的,並且再把我的破Linux基礎變好,非常感謝這位高手給我的建議。

老刀
10
Promote 0 Bookmark 02011-04-28quote  

Jerry_yu

也感謝您給我提供的意見,但我看fedora 15好像還沒有release說,所以才改用fedora 14的,不過我會去試試看的,並且再把我的破Linux基礎變好,非常感謝這位高手給我的建議。

Fedora 15 正式版預定 5/24 釋出,目前官網已經有 Fedora 15 beta,建議您可以下載來試試看。我讀了 Fedora 15 Release Note,確定它是以 GNOME 3 作為預定的桌面環境。

cht電腦資訊Linux
adm Find login register
views:24849