arm-linux-gcc交叉编译dbus库
1、dbus-1.0.2(http://dbus.freedesktop.org/releases/dbus)
echo
ac_cv_have_abstract_sockets=yes>arm-linux.cache
然后
CC=arm-linux-gcc ./configure
--host=arm-linux --cache-file=arm-linux.cache
make &&
make install
2、若xml函数找不到、未定义 需下载libxml2-2.6.8(http://xmlsoft.org/sources/old/)
,最好下载这一版本,其他的有时交叉编译不正常。若交叉编译libxml2-2.6.8时,有可能需要zlib库(方法在下面讲)
先装xml,版本libxml2-2.6.8,这个库一定要安装到/usr/local/arm/3.3.2/arm-linux而不是安装到/usr/local/arm/3.3.2下,否则会出现如下错误:
make[2]: Entering
directory `/root/download/dbus-1.0.2/bus'
/bin/sh ../libtool
--tag=CC --mode=link arm-linux-gcc -g -O2 -Wall -Wchar-subscripts
-Wmissing-declarations -Wmissing-prototypes -Wnested-externs
-Wpointer-arith -Wcast-align -Wfloat-equal -Wsign-compare
-fno-common -fPIC -o
dbus-daemon activation.o bus.o config-parser.o connection.o
desktop-file.o dir-watch-dnotify.o dispatch.o driver.o expirelist.o
policy.o selinux.o services.o signals.o test.o utils.o
config-loader-libxml.o main.o -lxml2 -lpthread -lz
-lm -lpthread ../dbus/libdbus-convenience.la
arm-linux-gcc -g -O2 -Wall
-Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes
-Wnested-externs -Wpointer-arith -Wcast-align -Wfloat-equal
-Wsign-compare -fno-common -fPIC -o dbus-daemon activation.o bus.o
config-parser.o connection.o desktop-file.o dir-watch-dnotify.o
dispatch.o driver.o expirelist.o policy.o selinux.o services.o
signals.o test.o utils.o config-loader-libxml.o main.o -lxml2 -lz
-lm -lpthread ../dbus/.libs/libdbus-convenience.a
/usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/bin/ld:
cannot find -lxml2
collect2: ld returned 1
exit status
make[2]: *** [dbus-daemon]
Error 1
make[2]: Leaving directory
`/root/download/dbus-1.0.2/bus'
make[1]: ***
[all-recursive] Error 1
make[1]: Leaving directory
`/root/download/dbus-1.0.2'
make: *** [all] Error
2
./configure --shared
make LDSHARED="arm-linux-gcc -shared -Wl,-soname,libz.so.1"
CC_FOR_BUILD="arm-linux-gcc" CC="arm-linux-gcc" LD="arm-linux-ld"
CPP="arm-linux-g++ -E" AR="arm-linux-ar rc"
prefix="/usr/local/arm/2.95.3" CFLAGS="-fPIC" libz.so.1.2.3 libz.a
千万不要执行make install ,操作系统会崩溃
拷贝zconf.h zlib.h到/usr/local/arm/2.95.3/arm-linux/include/
拷贝 libz.so* 到/usr/local/arm/2.95.3/arm-linux/lib/
http://blog.csdn.net/xuxinshao/archive/2008/01/24/2063876.aspx
4、make时可能找不到
-lX11,这是一个库,应该是图形的,感觉用不到,就把dbus-1.0.2\tools下的makefile中的DBUS_X_LIBS
= -L/usr/X11R6/lib -lX11改为DBUS_X_LIBS = -L/usr/X11R6/lib
并且该相应dbus-launch.c dbus-launch.h
dbus-launch-x11.c的宏定义,使他们不包括x11的函数如:dbus-launch.c中将:
#ifdef DBUS_BUILD_X11
改为:
#undef DBUS_BUILD_X11
#ifdef DBUS_BUILD_X11