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[33m\w\033[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…

Comments are closed.