2009年12月15日 星期二

betaradio 和 hinedo

這兩個 hinet 網路收音機介面都很久沒更新了
在 11.2 中一直都無法編譯成功
兩個都有類似的錯誤訊息
cc -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -pthread
-I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2
-DEGG_COMPILATION -DDATADIR=\"/usr/share\" -g -O2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0
-lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lcurl -pthread
-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0 -o betaradio betaradio.o eggtrayicon.o channel.o gstplay.o
betaradio.o: In function `onEggTrayEvent':
/usr/src/packages/BUILD/betaradio-0.1.2/src/betaradio.c:123: undefined reference to `gtk_menu_get_type'
/usr/src/packages/BUILD/betaradio-0.1.2/src/betaradio.c:123: undefined reference to `g_type_check_instance_cast'
/usr/src/packages/BUILD/betaradio-0.1.2/src/betaradio.c:123: undefined reference to `gtk_menu_popup'
betaradio.o: In function `appendMenu':
/usr/src/packages/BUILD/betaradio-0.1.2/src/betaradio.c:103: undefined reference to `gtk_menu_item_new_with_label'
/usr/src/packages/BUILD/betaradio-0.1.2/src/betaradio.c:104: undefined reference to `gtk_menu_shell_get_type'
/usr/src/packages/BUILD/betaradio-0.1.2/src/betaradio.c:104: undefined reference to `g_type_check_instance_cast'

這只是部份而已
後面一長串都是類似錯誤
後來改了一下 Makefile
hinedo
-    cc -o hinedo $(GTK2_LIBS) $(OBJS)
+ cc -o hinedo $(OBJS) $(GTK2_LIBS)

betaradio
-    $(LINK) $(betaradio_OBJECTS) $(betaradio_LDADD) $(LIBS)
+ $(LINK) $(betaradio_OBJECTS) $(AM_LDFLAGS) $(LDFLAGS) $(betaradio_LDADD) $(LIBS)

就可以順利編譯成功

同樣地方的 log 變成
gcc -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -pthread
-I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2
-DEGG_COMPILATION -DDATADIR=\"/usr/share\" -g -O2 -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0
-lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lrt -lglib-2.0 -lcurl -pthread
-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0 -o betaradio betaradio.o eggtrayicon.o channel.o gstplay.o
-pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype
-lfontconfig -lgobject-2.0 -lgmodule-2.0 -lrt -lglib-2.0 -lcurl -pthread -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0
make[2]: Leaving directory `/usr/src/packages/BUILD/betaradio-0.1.2/src'

您可以注意到 -l* 這些東西必須放在 *.o 的後面才能順利編譯
似乎最近常遇到這種問題
不知道是為什麼...請理解的人幫忙回答吧!

要安裝這兩個套件需要先有 Packman 套件庫,才能自動解決相依性
請先在社群套件庫中加入
不過 betaradio 的頻道似乎沒有更新,所以無法收聽...
$ betaradio
Can't get mms from V~.
Can't get mms from ��{.

先用 hinedo 吧
這兩個收音機的系統匣圖示大概和 gcin 是同一國的
都無法在 KDE4 顯示透明背景(傷腦筋)

一面工作一面聽收音機是蠻舒服的...

6 則留言:

Unknown 提到...

太棒了,這個找了好久
感謝黑眼珠大~~

塵封記憶 提到...

hi 黑眼大:

目前字型能用就好 @@
很感謝。

在次請教一個問題,
在純文字模式下無法顯式中文
都會變亂碼。
我也試過網路上寫的
export LANG=C

不過都沒有用,請問該更改哪邊呢?

Unknown 提到...

可以說明一下現在的字型情況嗎?

塵封記憶 提到...

因為最近案子在趕
所以就沒有安裝新的字型測試
目前的情況是像第4張圖
某些字有暈開

可能下星期才有空安裝新的字在測試

塵封記憶 提到...

hi 黑眼大:

剛下午出差回來
安裝你所說的字型套件後
在設定字型連結
現在中文字已完全ok 不會有暈開的情況了

謝謝你的幫忙

Unknown 提到...

console 下的確無法顯示中文
因為和一般使用者較無關
我也不知道要改什麼