交叉編譯dbus文章彙總

預安裝vmware6.0, debian4.0 linux OS 配置IP, samba, telnet等網絡服務


安裝包命令:
./configure CC=arm-unknown-linux-gnu-gcc --prefix=/home/qudc/nfs --host=arm-linux --cache-file=arm-linux.cache
指定交叉編譯工具                      指定安裝路徑          指定目標平臺
make
make install


1. 把"export PATH=$PATH:/home/qudc/gcc-4.0.2-glibc-2.3.5/arm-unknown-linux-gnu/bin (不要加/)" 加入/home/qudc/.bashrc
export交叉編譯工具鏈接路徑. 


2. 用root apt-get install gcc


3. 解壓交叉編譯工具和linux kernel 使kernel 中make menuconfig 成功. 會遇到頭文件報錯問題: 安裝libc6-dev 和 libncurses5-dev 這兩個包. make menuconfig 成功.


4. 安裝pkg-config (只能是0.9版, 系統debian4是0.21版, 不然dbus編譯不過) 爲glib做準備. apt-get install pkg-config


5. 解決安裝glib的編譯錯誤
stack pointer 問題:
echo ac_cv_type_long_long=yes>arm-linux.cache
echo glib_cv_stack_grows=no>>arm-linux.cache
echo glib_cv_uscore=no>>arm-linux.cache
echo ac_cv_func_posix_getpwuid_r=yes>>arm-linux.cache 
configure: error: Could not find a glib-genmarshal in your PATH
解壓glib2-devel-2.4.7-1.tar.gz, 將文件複製到/usr/local下面


6. 安裝expat-2.0.0.tar.gz


7. 安裝libxml.tar.bz2

下載dbus源碼,地址是http://www.freedesktop.org/wiki/Software/dbus
8. install dbus-1.0.2.tar.gz
checking abstract socket namespace... configure: error: cannot run test program while cross compiling
#echo ac_cv_have_abstract_sockets=yes>arm-linux.cache


PKG_CONFIG_PATH 問題:
在.bashrc裏 export PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/home/qudc/nfs/lib/pkgconfig
configure成功


9. Install dbus-glib-0.74.tar.gz
checking for posix getpwnam_r... configure: error: cannot run test program while cross compiling
checking abstract socket namespace... configure: error: cannot run test program while cross compiling
在arm-linux.cache文件里加兩行
ac_cv_func_posix_getpwnam_r=yes
ac_cv_have_abstract_sockets=yes


./configure: line 26052: ./po/POTFILES.in: No such file or directory (這行有人說可以忽略)
checking for XML_ParserCreate_MM in -lexpat... (cached) no
configure: error: expat library not found, check config.log for failed attempts
解決: #./configure CC=arm-unknown-linux-gnu-gcc CPPFLAGS=-I/home/qudc/nfs/include LDFLAGS=-L/home/qudc/nfs/lib --prefix=/home/qudc/nfs --host=arm-linux --cache-file=arm-linux.cache


make 出錯信息:
Making all in examples
make[4]: Entering directory `/home/qudc/dbus-glib-0.74/dbus/examples'
/bin/sh ../../libtool --mode=execute ../../dbus/dbus-binding-tool --prefix=some_object --mode=glib-server --output=example-service-glue.h ./example-service.xml
/home/qudc/dbus-glib-0.74/dbus/examples/../../dbus/dbus-binding-tool: line 105: /home/qudc/dbus-glib-0.74/dbus/.libs/lt-dbus-binding-tool: cannot execute binary file
/home/qudc/dbus-glib-0.74/dbus/examples/../../dbus/dbus-binding-tool: line 105: /home/qudc/dbus-glib-0.74/dbus/.libs/lt-dbus-binding-tool: Success
make[4]: *** [example-service-glue.h] Error 1
make[4]: Leaving directory `/home/qudc/dbus-glib-0.74/dbus/examples'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/qudc/dbus-glib-0.74/dbus'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/qudc/dbus-glib-0.74/dbus'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/qudc/dbus-glib-0.74'
make: *** [all] Error 2
解決:修改./dbus/Makefile. 
   SUBDIRS = . examples => SUBDIRS = . #example


make再次出錯信息:
Making all in tools
make[2]: Entering directory `/home/qudc/dbus-glib-0.74/tools'
DBUS_TOP_BUILDDIR=.. dbus-daemon --introspect > dbus-bus-introspect.xml.tmp && mv dbus-bus-introspect.xml.tmp dbus-bus-introspect.xml
../dbus/dbus-binding-tool --mode=glib-client --prefix=dbus_bus --output=dbus-glib-bindings.h dbus-bus-introspect.xml
../dbus/dbus-binding-tool: line 105: /home/qudc/dbus-glib-0.74/dbus/.libs/lt-dbus-binding-tool: cannot execute binary file
../dbus/dbus-binding-tool: line 105: /home/qudc/dbus-glib-0.74/dbus/.libs/lt-dbus-binding-tool: Success
make[2]: *** [dbus-glib-bindings.h] Error 1
make[2]: Leaving directory `/home/qudc/dbus-glib-0.74/tools'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/qudc/dbus-glib-0.74'
make: *** [all] Error 2
解決: 修改./dbus/Makefile. 
   SUBDIRS = . examples => SUBDIRS = . #example


D-BUS編譯終於完成.http://jz345.net/?action-viewnews-itemid-51660
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章