在学习BLE bluez的时候,做了一个测试程序,看到gatttool.c下面有一个glib解析命令行的功能,想移植到自己的程序接口中,但是添加了#include <glib.h>后,出现了fatal error: glib.h: No such file or directory错误。经过网上查找答案,询问同事,找到了解决方法:在Makefile中添加glib库和头文件。
方法如下
1.安装glib库:
apt-get install libglib2.0-dev
2.(Makefile中):
LINKFLAGS += -lglib-2.0
INCL_PATH += -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include/
.SUFFIXES:.c.o.h
$(BIN):$(OBJECTS)
$(CC) $(CMPOPT) $(BIN) $(OBJECTS) $(LINKFLAGS)
%.o:%.c
$(CC) -c $(INCL_PATH) $(CFLAGS) $< $(CMPOPT) $@
编译bluez的时候出现:/usr/bin/ld: cannot find -lcurl
1) 执行命令apt-get install libcurl-dev,系统提示:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libcurl-dev is a virtual package provided by:
libcurl4-openssl-dev 7.35.0-1ubuntu2.20
libcurl4-nss-dev 7.35.0-1ubuntu2.20
libcurl4-gnutls-dev 7.35.0-1ubuntu2.20
You should explicitly select one to install.
需要选择一个安装。选择了第一个安装
2) 执行命令:apt-get install libcurl4-openssl-dev
3)重新编译,正常。
PS: 记录编译bluez需要安装的库文件:
sudo apt-get install gcc libglib2.0-dev libdbus-1-dev libdbus-c++-dev libudev-dev libical-dev libreadline-dev