交叉编译器d-bus
问题描述:
我想用corss_compiler D-bus来布防。交叉编译器d-bus
工具链ARM-Linux的GCC-3.4.1
配置选项:CC =臂-Linux的GCC的./configure前缀= /选择/ DBUS /主机=臂Linux的 - 使抽象的套接字-with-XML =外籍
sourecode:DBUS-1.2.24 DBUS-1.3.1 DBUS-1.4.0
make[2]: Entering directory `/home/mandy/Desktop/apps/d-bus/remotec/dbus-1.4.0/bus'
CCLD dbus-daemon
/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/bin/ld: Warning: gc-sections option ignored
dbus_daemon-bus.o(.text.process_config_postinit+0x120): In function `bus_context_check_security_policy':
/home/mandy/Desktop/apps/d-bus/remotec/dbus-1.4.0/bus/bus.c:1638: undefined reference to `bus_set_watched_dirs'
/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libc_nonshared.a(elf-init.oS)(.text+0x44): In function `__libc_csu_init':
: undefined reference to `__init_array_end'
/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libc_nonshared.a(elf-init.oS)(.text+0x48): In function `__libc_csu_init':
: undefined reference to `__init_array_start'
/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libc_nonshared.a(elf-init.oS)(.text+0x8c): In function `__libc_csu_fini':
: undefined reference to `__fini_array_end'
/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/lib/libc_nonshared.a(elf-init.oS)(.text+0x90): In function `__libc_csu_fini':
: undefined reference to `__fini_array_start'
collect2: ld returned 1 exit status
make[2]: *** [dbus-daemon] Error 1
make[2]: Leaving directory `/home/mandy/Desktop/apps/d-bus/remotec/dbus-1.4.0/bus'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/mandy/Desktop/apps/d-bus/remotec/dbus-1.4.0'
make: *** [all] Error 2
在DBUS-1.2。 24和dbus-1.3.1也会得到相同的错误。
我能做什么?
非常感谢。
答
这些是为avr32架构交叉编译dbus的一般说明。基于这个reference(第三篇文章)的手臂,我创建了这个小教程。我正在发布我的教程,因为它可能对其他人或甚至您比较命令有用。
EXPAT图书馆
为了交叉编译DBUS必须越过第一编译外籍库。通过选项前缀,您可以指定必须安装的位置。
下载外籍SRC代码: ftp://ftp.free.fr/.mirrors1/ftp.netbsd.org/packages/distfiles/expat-2.0.1.tar.gz
其解压缩:
tar zxvf expat-2.0.1.tar.gz
与此时,相应的主机和C编译器进行配置。您必须安装AVR32 Linux的工具链(Buildroot里面编译工具链,你必须将二进制文件路径添加到环境变量$ PATH)
cd expat-2.0.1/
./configure --host=avr32-linux --prefix=/home/juan/builds/build_expat/ CC=avr32-linux-gcc
make; make install
DBUS
下载DBUS SRC代码: http://dbus.freedesktop.org/releases/dbus/dbus-1.5.0.tar.gz
其解压缩:
tar zxvf dbus-1.5.0.tar.gz
cd dbus-1.5.0.tar.gz
配置指定安装文件夹(--prefix),C编译器中,包括文件夹和外籍库lib文件夹:
./configure --prefix=/home/juan/builds/build_dbus/ --host=avr32-linux --with-x=no ac_cv_have_abstract_sockets=yes "CC=avr32-linux-gcc -I/home/juan/builds/build_expat/include -L/home/juan/builds/build_expat/lib"
make;make install;