终于把WebKit(基于GTK)移植到ARM上


DirectFB用的命令是:

./configure -host=arm-linux --prefix=$ROOTFS_DIR/usr --with-gfxdrivers=none --enable-sdl=no  --disable-x11 "CFLAGS=-I$ROOTFS_DIR/usr/include" "LIBS=-L$ROOTFS_DIR/usr/lib -lz -ljpeg"  && make && make install

glib-2.12.0:
export ARCH=arm
CC=$ARCH-linux-gcc
echo ac_cv_type_long_long=yes>>$ARCH-linux.cache
echo glib_cv_long_long_format=ll>>$ARCH-linux.cache
echo glib_cv_stack_grows=no>>$ARCH-linux.cache
echo glib_cv_uscore=no>>$ARCH-linux.cache
echo ac_cv_func_posix_getpwuid_r=yes>>$ARCH-linux.cache
./configure --prefix=$ROOTFS_DIR/usr --cache-file=$ARCH-linux.cache --build= i686-pc-linux-gnu --target=$ARCH-linux --host=$ARCH-linux && make && make install
glib在做configure时,如果还遇到test xxx过不去,打开configure,查找相应的符号XXX,输入
echo XXX=no>>$ARCH-linux.cache no和yes看情况选吧

cairo-1.4.2
export ARCH=arm
CC=$ARCH-linux-gcc
export CFLAGS="-I$ROOTFS_DIR/usr/include"
export LDFLAGS="-L$ROOTFS_DIR/usr/lib"

 ./configure --prefix=$ROOTFS_DIR/usr --enable-directfb --disable-xlib --disable-win32 --enable-png --enable-freetype --enable-pdf --enable-ps --build= i686-pc-linux-gnu --target=$ARCH-linux --host=$ARCH-linux && make && make install

pango-1.16.2:
export ARCH=arm
CC=$ARCH-linux-gcc
export LDFLAGS="-L$ROOTFS_DIR/usr/lib -Wl,-rpath=$ROOTFS_DIR/usr/lib"
export FREETYPE_CONFIG=$ROOTFS_DIR/usr/bin/freetype-config

./configure --prefix=$ROOTFS_DIR/usr --build= i686-pc-linux-gnu --with-arch=$ARCH --without-x --target=$ARCH-linux --host=$ARCH-linux && make && make install
pango还是有点问题,字体显示还不正常。

webkit的地方有一点改动

./configure --prefix=$ROOTFS_DIR/usr --with-target=directfb --without-x --build=i686-pc-linux-gnu --target=$ARCH-linux --host=$ARCH-linux CFLAGS=-I$ROOTFS_DIR/usr/include  CPPFLAGS=-I$ROOTFS_DIR/usr/include

icu_config=$ROOTFS_DIR/usr && make && make install

1.可能出现缺少X11的头文件,搜索下缺少的X11的文件,复制到$ROOTFS_DIR/usr/include下。
2.出现失败信息关于 “u_charType_3_6”, 打开 libJavaScriptCore.la(跟autogen.sh 同一目录下),在dependency_libs 行最末尾添加-licui18n。
继续make
make install
编译完成了在Program/.lib目录下运行./Gtklauncher,就可以看到浏览器窗口了。

几点心得:

1.出问题多重启,很多莫名其妙的问题,重启后就解决了

2.哪个模块遍布过去,删掉该模块和相关的模块,重装。

3.路径问题很麻烦,要搞清本地路径和遍到arm上路径。

4.如果出现C compiler cannot create XXX 等错误,是因为c编译器来回换出现的问题,重新登陆一个终端,如果还有这样的问题,重启就可以解决。

终于在离职前一天编完了,把这段时间工作画上一个句号。虽然后续工作还有很多,已经和我无关了。webkit今后也许不会再接触了。今后会不会再做it,会不会在上海,我也不知道。人生有太多不确定了,自己无法把握,索性就飘啊飘吧。

相关内容