第一篇博客!自己弄东西时,看到很多网友的帖子,对在下帮助甚大。这里奉献下自己的成果经验。本人菜鸟,如有不对之处,欢迎指出。
对于bluez的交叉编译,网上有很多,但是大部分都是编译bluez-utils这个bluez的工具包,但是bluez4.48之后的版本,都是将工具包包含在内的,所以不需要编bluez-utils了。实在是编那个的时候总是有问题。下面的两个网站上,有很全的编译过程(但不是交叉编译)和各种库的下载
http://www.linuxfromscratch.org/blfs/view/stable/general/bluez.html ——这个是bluez4.101
http://www.linuxfromscratch.org/blfs/view/svn/general/bluez.html ——这个是bluez5.21
Bluez4.101交叉编译的具体步骤
首先确定安装目录,安装目录最好不是用户目录,以免有权限限制.
先进行环境变量的设置,告诉之后系统,我的库安装的目录
export PKG_CONFIG_PATH=/path/usr/lib/pkgconfig
Expat
./configure --prefix=/path/usr --host=arm-linux-gnueabihf
&& make
sudo make install
这个库是较好编的,其中path就是你编译bluez需要存放的地址,所有编译的库需存放在同一个目录下,最后可将编译好的bluez这个文件夹,直接copy到开发板的内存中,可直接使用
D-bus
./configure
CFLAGS=-I/path/usr/include LDFLAGS=-L/path/usr/lib
--prefix=/path/usr
--host=arm-linux-gnueabihf \
--with-x=no && make
sudo make install
glib(之前要通过源程序装zlib和apt-get libglib2.0-dev)
export PKG_CONFIG_LIBDIR=/path/usr/lib/pkgconfig/
CC=arm-linux-gnueabihf-gcc
./configure \
--host=arm-linux-gnueabihf \
--prefix=/path/usr \
--disable-installed-tests \
ac_cv_type_long_long=yes \
glib_cv_stack_grows=no \
glib_cv_uscore=no \
ac_cv_func_posix_getpwuid_r=yes \
ac_cv_func_posix_getgrgid_r=yes && make
bluez-4.101 jiaocha(ok)
export PKG_CONFIG_LIBDIR=/path/usr/lib/pkgconfig/
mkdir -p /path/lib/systemd/system
mkdir -p /path/usr/lib/systemd
CC=arm-linux-gnueabihf-gcc
./configure \
--host=arm-linux-gnueabihf \
--with-systemdsystemunitdir=/path/lib/systemd/system/ \
--with-systemduserunitdir=/path/usr/lib/systemd \
--prefix=/path/usr \
--with-dbussystembusdir=/path \
--disable-udev \
--enable-experimental \
# LDFLAGS=-lncurses \加上的话,C无法产生可执行文件(这里也可能是我这两个环境变量给的值出现了问题,如有大神知道,欢迎批评指正)
# CFLAGS=-I/path/include
&& make