- 论坛徽章:
- 0
|
最近在搭建dfb+gtk for arm
参考网路上各路高手的一些经验,基本上把所需要的库都交叉编译了,到最后交叉编译gtk+时遇到问题了
编辑了个configure脚本:
PREFIX=/opt/armhome \
CC=/opt/crosstool/gcc-4.0.1-glibc-2.3.5/arm-unknown-linux-gnu/bin/arm-unknown-linux-gnu-gcc \
PKG_CONFIG=/usr/bin/pkg-config \
BASE_DEPENDENCIES_CFLAGS="-I$PREFIX/include -I$PREFIX/lib/glib-2.0/include -I$PREFIX/include/glib-2.0 \
-I$PREFIX/include/pango-1.0 -I$PREFIX/include/cairo -I$PREFIX/include/atk-1.0" \
BASE_DEPENDENCIES_LIBS="-L$PREFIX/lib $PREFIX/lib/libglib-2.0.so $PREFIX/lib/libgobject-2.0.so \
$PREFIX/lib/libgmodule-2.0.so $PREFIX/lib/libfontconfig.so $PREFIX/lib/libxml2.so" \
GLIB_CFLAGS="-I$PREFIX/include -I$PREFIX/lib/glib-2.0/include -I$PREFIX/include/glib-2.0" \
GLIB_LIBS="-L$PREFIX/lib $PREFIX/lib/libglib-2.0.so $PREFIX/lib/libgobject-2.0.so \
$PREFIX/lib/libgmodule-2.0.so $PREFIX/lib/libfontconfig.so $PREFIX/lib/libxml2.so" \
PANGO_CFLAGS="-I$PREFIX/include/pango-1.0" \
PANGO_LIBS="-L$PREFIX/lib $PREFIX/lib/libpango-1.0.so $PREFIX/lib/libpangoft2-1.0.so \
$PREFIX/lib/libpangocairo-1.0.so" \
GDK_DEP_CFLAGS="-pthread -I$PREFIX/include/glib-2.0 -I$PREFIX/lib/glib-2.0/include \
-I$PREFIX/include/pango-1.0 -I$PREFIX/include/cairo -I$PREFIX/include -D_REENTRANT -D_GNU_SOURCE \
-I$PREFIX/include -I$PREFIX/include/directfb" \
GDK_DEP_LIBS="-L$PREFIX/lib -ldirectfb -lfusion -ldirect -lpthread -ldl -lpng12 -lpangocairo-1.0 \
-lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -ljpeg -lm" \
GDK_PIXBUF_DEP_CFLAGS="-pthread -I$PREFIX/include/glib-2.0 -I$PREFIX/lib/glib-2.0/include \
-I$PREFIX/include -I$PREFIX/include" \
GDK_PIXBUF_DEP_LIBS="-L$PREFIX/lib -lgmodule-2.0 -ldl -lgobject-2.0 -lglib-2.0 -lpng12 -ljpeg -lm" \
GTK_DEP_CFLAGS="-pthread -I$PREFIX/include/glib-2.0 -I$PREFIX/lib/glib-2.0/include \
-I$PREFIX/include/pango-1.0 -I$PREFIX/include/cairo -I$PREFIX/include -D_REENTRANT -D_GNU_SOURCE \
-I$PREFIX/include/directfb -I$PREFIX/include/atk-1.0 -I$PREFIX/include" \
GTK_DEP_LIBS="-L$PREFIX/lib -lpng12 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lgobject-2.0 -lgmodule-2.0 \
-ldl -lglib-2.0 -lcairo -ljpeg -lm" \
GDK_EXTRA_CFLAGS="-I$PREFIX/include" \
GDK_EXTRA_LIBS="-L$PREFIX/lib -ldirectfb -lz -lfusion -ldirect -lpthread -ldl" \
./configure \
--host=arm-linux \
--prefix=$PREFIX \
--with-gdktarget=directfb \
--without-libtiff \
--disable-glibtest \
--disable-largefile \
--disable-modules \
--with-included-loaders=jpeg,gif,png,xpm
运行报错
checking for DirectFB... configure: error:
*** DirectFB 0.9.24 or newer and the cairo backend
*** are required. The latest version of DirectFB is always available
*** from http://www.directfb.org/.
于是检查config.log
发现问题 configure:33857: error:
回头看configure文件,导致出错的原因在于这一行
if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb && $PKG_CONFIG --exists cairo-directfb ; then
....
在终端检测了一下,directfb.pc 是没有问题的,返回成功,但是 cairo-direcfb.pc 就检测失败了
打印错误信息:
root@ubuntu:/home//gtk+-2.10.14# pkg-config --exists cairo-directfb --print-errors
Package /opt/armhome/lib/pkgconfig was not found in the pkg-config search path.
Perhaps you should add the directory containing `/opt/armhome/lib/pkgconfig.pc'
to the PKG_CONFIG_PATH environment variable
Package '/opt/armhome/lib/pkgconfig', required by 'cairo', not found
于是看了下cairo-direcfb.pc 和 cairo.pc这两个文件
发现cairo-directfb 需要cairo
而cairo.pc中出现了很奇怪的一个依赖
prefix=/opt/armhome
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: cairo
Description: Multi-platform 2D graphics library
Version: 1.4.10
Requires.private: freetype2 >= 8.0.2 fontconfig directfb /opt/armhome/lib/pkgconfig
Libs: -L${libdir} -lcairo
Libs.private: -lz -lm
Cflags: -I${includedir}/cairo
问题就处在这里了,需要/opt/armhome/lib/pkgconfig.pc文件,我也不知道这个东西是什么,卡在这里了,把这个依赖直接去掉的话,会出现
/opt/crosstool/gcc-4.0.1-glibc-2.3.5/arm-unknown-linux-gnu/lib/gcc/arm-unknown-linux-gnu/4.0.1/../../../../arm-unknown-linux-gnu/bin/ld: warning: libpangoft2-1.0.so.0, needed by /opt/armhome/lib/libpangocairo-1.0.so, not found (try using -rpath or -rpath-link)
/opt/crosstool/gcc-4.0.1-glibc-2.3.5/arm-unknown-linux-gnu/lib/gcc/arm-unknown-linux-gnu/4.0.1/../../../../arm-unknown-linux-gnu/bin/ld: warning: libfreetype.so.6, needed by /opt/armhome/lib/libpangocairo-1.0.so, not found (try using -rpath or -rpath-link)
/opt/crosstool/gcc-4.0.1-glibc-2.3.5/arm-unknown-linux-gnu/lib/gcc/arm-unknown-linux-gnu/4.0.1/../../../../arm-unknown-linux-gnu/bin/ld: warning: libz.so.1, needed by /opt/armhome/lib/libcairo.so, not found (try using -rpath or -rpath-link)
/opt/armhome/lib/libcairo.so: undefined reference to `FcPatternAddInteger'
/opt/armhome/lib/libcairo.so: undefined reference to `deflate'
/opt/armhome/lib/libcairo.so: undefined reference to `FT_Get_PS_Font_Info'
看来还是cairo库有问题,但是真的找不到问题出在那里啊!求助大侠帮忙分析 |
|