Embedme项目简介
Embedme是一个基于linux的嵌入式应用类库,包括线程,线程池,定时器,事件分发,消息队列,socket,HttpClient,JSON,
SqliteWrapper,Tuple,MD5,CRC,文件,目录,共享内存,互斥锁,串口,日志,配置等开发中常用的模块。Embedme集成了
cJson,sqlite,tinyxml,libconfig++等优秀的开源库,并将这些库封装成非常人性化的C++接口,同时Embedme为嵌入式linux应用程序
常使用的功能接口提供一个小巧简洁的C++封装库libemb,它可以帮助您快速的构建稳定的嵌入式应用程序,省去广大码农造轮子
的重复劳动。libemb库已应用在多个实际项目中,可以放心使用,欢迎各位同行fork本开源库,期待您的建议和开源贡献。
注意事项
本软件遵循LGPL协议,请自觉遵守该协议,否则将追究您的法律责任!
如果您使用此源码,请务必保留README在您的工程代码目录下!
工程目录
此工程文件夹意在提供一个基于libemb库的通用工程构建模板,方便用户快速构建嵌入式应用程序。请用户不要随意更改工程目录结构
树及Makefile文件。
###目录树结构
app -------------应用程序源代码存放目录.
libemb ---------为embedme库文件夹,如果您只是使用libemb库,请不要删除或修改该文件夹内的任何文件.
opensource---目录用于集成外部开源库.
output----------目录为输出目录,用于存储编译过程中间文件及目标文件.
Makefile -------工程主Makefile
在编译前请先确认已安装autoconf,automake,libtool等工具,否则无法编译成功,如遇编译错误,请自行查看错误提示,判断是否是工具未安装。
##使用说明(更多详情可以使用make help查看帮助)
1. 先编译开源公用库:
#make opensource
2. 编译libemb库:
#make libemb
3. 最后编译应用程序app:
# make app
您也可以一次性编译整个工程:
#make all
##其他编译选项
本工程支持cygwin环境下编译,编译方法与Linux下一样,但有部分模块可能无法使用,具体请查看源码,源码中未被OS_LINUX宏使能的模块在cygwin下都是无效的.
如果您需要将该项目移植到其他平台,编译时需要加上HOST参数,如移植到arm平台,交叉编译器的host为arm-linux,则使用如下命令进行编译:
#make all HOST=arm-linux
默认为静态编译方式,如果您需要动态编译,请使用:
#make all SHARED=yes
如果您需要清理工程进行重新编译,请使用:
#make clean
您可以在inc或src目录中任意创建子目录以方便管理源代码,增加子目录和源代码后,您需要将子目录及文件添加到Makefile的ADD_INCLUDE_DIR变量和PROJECT_SRC变量中,这样您才能正确编译。