blueZ 5 37 交叉編譯可以在arm上執行

2021-08-09 06:25:33 字數 1697 閱讀 7147

之前編譯過bluez4.95的,方法沒有記錄,現在又要不編譯5.37又要重新來一遍,中間各種依賴的庫,各種坑,現在要完完全全的記錄下來。

5.37的bluez需要依賴的庫expat-2.0.1.tar.gz、glib-2.45.3.tar.xz、readline-5.2.tar.gz、libical-2.0.0.tar.gz、dbus-1.10.8.tar.gz、ncurses-5.9,把這幾個庫搞定都不容易。其中的glib和dbus還有版本的限制,低版本的庫還不行,當然版本越高越好,非常坑。

所謂的編譯過程的問題,主要是在配置階段,只要配置對了,基本都沒什麼問題了,下面主要說下是怎麼配置的。

ncurses的配置和編譯:

./configure --with-shared -host=arm-linux  -prefix=$/tmp cc="arm-linux-gnueabihf-gcc"

dbus的配置和編譯:

./configure -prefix=$/tmp -host=arm-linux -with-x=no --disable-tests -enable-abstract-sockets cc="/home/lsy/ipc007_cross_complie/ambarella_toolchain_linaro_2015.11/linaro-armv7ahf-2015.11-gcc5.2/bin/arm-linux-gnueabihf-gcc" cflags=-i"/home/lsy/bluez-4.95/expat-2.0.1/tmp/include" ldflags=-l"/home/lsy/bluez-4.95/expat-2.0.1/tmp/lib"

bluez

配置bluez前一定要先配置pkg_config_libdir,以便配置是能去檢測到dbus等的版本滿足要求方法如下:

export pkg_config_libdir=/home/lsy/bluez-4.95/dbus-1.10.8/tmp/lib/pkgconfig:/home/lsy/bluez-4.95/glib-2.45.3/tmp/lib/pkgconfig:/home/lsy/bluez-4.95/libical-2.0.0/tmp/tmp/out/lib/pkgconfig

./configure -prefix=$/tmp -host=arm-linux --disable-udev --enable-library -enable-tools -enable-cups -enable-test cc="arm-linux-gnueabihf-gcc" --sysconfdir=/etc --localstatedir=/var --enable-experimental --with-systemdsystemunitdir=/lib/systemd/system --with-systemduserunitdir=/usr/lib/systemd cflags="-i/home/lsy/bluez-4.95/dbus-1.10.8/tmp/include -i/home/lsy/bluez-4.95/readline-5.2/tmp/include" ldflags="-l/home/lsy/bluez-4.95/dbus-1.10.8/tmp/lib  -l/home/lsy/bluez-4.95/readline-5.2/tmp/lib/ -l/home/lsy/bluez-4.95/ncurses-5.9/tmp/lib -lncurses"

之後make && make install就行了。

有什麼問題了,可以問我。

Bluez交叉編譯 bluez4 101

第一篇部落格!自己弄東西時,看到很多的帖子,對在下幫助甚大。這裡奉獻下自己的成果經驗。本人菜鳥,如有不對之處,歡迎指出。這個是bluez4.101 這個是bluez5.21 bluez4.101交叉編譯的具體步驟 首先確定安裝目錄,安裝目錄最好不是使用者目錄,以免有許可權限制.先進行環境變數的設定,...

golang在win下交叉編譯

1 安裝 必須安裝git 和 mingw 2 設定環境變數 系統path變數 新增c mingw bin c program files git bin 3 執行批處理 將以下存放在install.bat 放於 go src下執行 4 執行go編譯 下面是編譯乙個linux下執行的 echo off...

在ubuntu交叉編譯 樹莓派

交叉編譯是在乙個平台上生成另乙個平台上的可執行 比如 1.我們再windows上面編寫c51 並編譯成可執行 如xx.hex,是在c51上面執行,不是在windows上面執行 2.我們在ubuntu上面編寫樹莓派的 並編譯成可執行 如a.out,是在樹莓派上面執行,不是在ubuntu linux上面...