2012年5月14日

[程式]Linux 64位元版gdk-pixbuf問題

以前用自製東方音樂播放器的時候就有發現異狀,選檔案的視窗顯示不出icon,那時沒有特別去研究,四月做MMH新版installer的時候發生build好的程式在另一台電腦上不能執行的情況,於是開始研究這個問題。

從命令列執行看出現的訊息就看到問題出在哪了,是gdk-pixbuf的問題。程式是32位元的而不能執行的電腦是裝64位元系統,Linux Mint 64位元版把32位元函式庫放在lib32,64位元的放在lib資料夾下,但是執行32位元或64位元程式時gdk-pixbuf都會去lib載入圖檔解碼函式庫,所以執行32位元程式會出問題。
MMH本身不是透過gdk-pixbuf,而是直接用libpng、libjpeg做圖檔解碼,無此問題。

查了一下發現這個bug在Ubuntu 11.04(Linux Mint 11)開始有(我試過Linux Mint 10沒有此問題),不知為何到12.04都還沒修(我後來發現在Linux Mint 12有修了)。
用Linux碰過一堆相容性問題,我是不想再說什麼了。

解決方法之一是把這個ppa加入套件庫,然後開套件管理員更新ia32-libs。如果有人在PF16買的MMH沒辦法安裝在Linux,可參考一下。
https://launchpad.net/~micove/+archive/experimental