编译FBReader 0.10.7 X86和ARM版本
1. 下载FBReader源代码以及链接库文件源代码
step.1
编译X86版本需要的链接库:
fribidi-0.10.9(http://fribidi.org/),
liblinebreak-1.2(http://vimgadgets.cvs.sourceforge.net/vimgadgets/common/tools/linebreak/),
expat(http://expat.sourceforge.net),
编译ARM版本还需要的链接库:
bzip2-1.0.5(http://www.bzip.org/),
curl-7.19.6(http://curl.haxx.se/),
zlib-1.2.3(http://www.zlib.net/)
为了方便起见,所有的库文件全部安装到固定目录$PREFIX=/home/dennis/reader/ereader/prefix
****
PREFIX=/home/ereader/prefix
fribidi-0.10.9交叉编译
1. ./configure --prefix=$PREFIX --host=arm-linux --target=arm-linux && make && make install
liblinebreak-1.2交叉编译
1. ./configure --prefix=$PREFIX --host=arm-linux --target=arm-linux && make && make install
expat交叉编译
1. ./configure --prefix=$PREFIX --host=arm-linux --target=arm-linux && make && make install
bzip2交叉编译
1. make CC=arm-linux-gcc AR=arm-linux-ar RANLIB=arm-linux-ranlib PREFIX=$PREFIXDIR && make install PREFIX=$PREFIX
curl-7.19.6交叉编译
1. ./configure --prefix=$PREFIX --host=arm-linux --target=arm-linux && make && make install
zlib-1.2.3交叉编译
1. ./configure --prefix=$PREFIX --host=arm-linux --target=arm-linux && make && make install
2. 修改Makefile相关文件
step.1 修改makefiles/target.mk,TARGET_TYPE=desktop UI_TYPE=qt4 TARGET_STATUS=release
step.2 修改makefiles/arch/desktop.mk中qt4的路径,moc=/../moc,include=-I/.../include,lib=-L/.../lib -lQtGui
step.3 修改makefiles/arch/desktop.mk中qt4的路径,CC=arm-linux-gcc, AR=arm-linux-ar rsu, LD=arm-linux-g++
step.4 修改INSTALLDIR=/usr 为INSTALLDIR=/home/../ebook/prefix #指定make install安装路径,和前面几个库文件保持统一
step.5 修改makefiles/config.mk(因为所有的链接库文件都在指定的安装目录中,需要确保fbreader能够找到include相关头文件和link相关库文件),否则会出现无法找到头文件如fribidi.h和库文件的错误
BINDIRBINDIR ?= /bin <--> BINDIRBINDIR ?= $(INSTALLDIR)/bin
LIBDIR ?= /lib <--> LIBDIR ?= $(INSTALLDIR)/lib
INCDIR ?= /include <--> INCDIR ?= -I $(INSTALLDIR)/include
SHAREDIR ?= /share <--> SHAREDIR ?= $(INSTALLDIR)/share
XML_LIBS ?= /lib -lexpat <--> XML_LIBS ?= -L$(INSTALLDIR)/lib -lexpat
ARCHIVER_LIBS ?= /lib -lz -lbz2 <--> ARCHIVER_LIBS ?= -L$(INSTALLDIR)/lib -lz -lbz2
NETWORK_LIBS ?= /lib -lcurl <--> NETWORK_LIBS ?= -L$(INSTALLDIR)/lib -lcurl
ifeq "$(ZLSHARED)" "yes"
CORE_LIBS = -lm -L$(ROOTDIR)/zlibrary/core -lzlcore -ldl -L$(INSTALLDIR)/lib -lexpat -lcurl
TEXT_LIBS = -lzltext $(EXTERNAL_LIBS) -L$(INSTALLDIR)/lib -llinebreak -lfribidi
esle
step.4 修改makefiles/subdir.mk中,
INCLUDE = $(ZINCLUDE) $(EXTERNAL_INCLUDE) <--> INCLUDE = $(ZINCLUDE) $(EXTERNAL_INCLUDE) $(INCDIR)
3. make&install
step.1 建立mk.sh可执行脚本文件,内容为
TARGET_ARCH=desktop UI_TYPE=qt4 TARGET_STATUS=release INSTALLDIR=/home/../ebook/prefix
make install TARGET_ARCH=desktop UI_TYPE=qt4 TARGET_STATUS=release INSTALLDIR=/home/../ebook/prefix
step.2 $./mk.sh