Compile GLib 2.30.0 Need libffi

為了試試看能不能在MinGW下編譯GTK+-3.2.0下,ㄚ琪又重裝了MinGW跟Msys,當然這次的版本更新了,主要是下載mingw-get-inst-20110802.exe來安裝,另外路徑不再像建構自訂的MinGW/MSYS開發環境介紹使用/usr/local這類傳統Unix-like的預設安裝路徑,改用MinGW建議的/mingw路徑。

/etc/fstab不設定了。

因此profile.local由

2011-10-03_145916

改成

#
# /mingw/etc/profile.local
#

alias dir=’ls -la –color=auto’
alias ls=’ls –color=auto’

PKG_CONFIG_PATH=”/mingw/lib/pkgconfig”
CPPFLAGS=”-I/mingw/include”
CC=”gcc -mthreads -mwindows”
CFLAGS=”-O2″
CXXFLAGS=”-I/mingw/include -mms-bitfields”
LDFLAGS=”-L/mingw/lib -Wl,–enable-auto-image-base”
LIBS=-lintl
export LIBS CC PKG_CONFIG_PATH CPPFLAGS CFLAGS CXXFLAGS LDFLAGS
export PKG_CONFIG=”/mingw/bin/pkg-config.sh”
export LD_LIBRARY_PATH=”/mingw/lib”
export lt_cv_deplibs_check_method=”pass_all”
PATH=”${PATH}:/opt/bin”
PS1='[033[32m]u@h [033[33mw033[0m]$ ‘
export PATH PS1

# package build directory
LOCALBUILDDIR=~
# package installation prefix
LOCALDESTDIR=/mingw
export LOCALBUILDDIR LOCALDESTDIR

vim暫時也不設定,反正是在Windows下作業有一堆的編輯器可以用。

subversion、cmake先不裝。

pkg-config還是跟原來的安裝一樣,主因還是pkg-config跟glib這種蛋生雞,雞生蛋的問題,兩個彼此互相依靠,所以完全不能說先裝哪一個來完成任務,所以只好先借用這個已編譯好的程式來暫用,等編譯好glib再來更新pkg-config。

directx暫時不裝,zlib雖說可以用mingw-get install zlib來安裝,但卻沒有該有include及lib的檔案,所以還是得照前文來操作。

nasm、SDL暫時不裝。

libng、libjpg、libtiff一樣照單全收使用。

SDL_image、OpenAL Soft、smpeg、libogg、libvorbis、SDL_mixerㄚ琪覺得這是視訊要用的程式,暫時不裝。

curl照做。

Public Domain Curses、freeglut、Bullet暫時不裝。

libiconv、gettext也先不裝,原因好像MinGW預設有安裝。

重頭戲來了,glib-2.30.0的安裝,不過沒有像之前的順利,主要是這次的編譯竟然要有libffi函式庫,這個函式庫之前是不須要的。

libffi 的全名是 Foreign Function Interface,他本身是用組合語言撰寫,不過他提供了一個 Portable 的 API。我們只要呼叫這些 API 就可以進行動態的函式呼叫(這和 Function Pointer 不同。如前所述,Function Pointer 必需在 Compiler Type 決定函式的型別。而 libffi 可以在執行期決定 Callee 的型別)。許多有名的計劃都是 libffi 的使用者,例如:CPythonOpenJDKDalvik VM 等等。

好了,就去下載libffi-3.0.10的原始碼來編譯,應該不會有問題。接下來就繼續去編譯glib了…

接下來會發現的問題就是沒有python2.5

/usr/bin/env: python2.5: No such file or directory

失敗了,卡在MinGW下沒有python,Orz…

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *