2010-12-02 166 views
2

我想用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也會得到相同的錯誤。

我能做什麼?

非常感謝。

回答

2

這些是爲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;