周末哪都没去,在公司呆了两天,终于搞定了。
看到小屏幕上浏览器窗口,心里轻松了,终于完成了。
整个过程是参考
http://ppbabytiger.spaces.live.com/blog/cns!549302309A9552BE!397.entry
头顶盔*手持剑*脚蹬靴,胖小虎...写的 交叉编译 Webkit (基于 GTK + DFB )
很巧的是当初在intel打工时,也是做这个项目,只是没见过博主。
细节的地方做了些改动和纠错
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,会不会在上海,我也不知道。人生有太多不确定了,自己无法把握,索性就飘啊飘吧。
联系客服