Skip to content

Latest commit

 

History

History
80 lines (62 loc) · 4.5 KB

README.cn.md

File metadata and controls

80 lines (62 loc) · 4.5 KB

libraries English Build Status Release License

libraries是一组通用的C基础库

  • 全部用POSIX C实现,目标是为了跨平台兼容x86, arm, android, ios.
  • 每个库尽可能各自独立,而且API容易使用
  • 尽量不依赖任何第三方库
  • 目标是为减少重复造轮子
libatomic 原子操作库 libcmd 命令行库
libconfig 配置文件库 libdebug 调试辅助库
libdict 哈希字典 libdlmod 动态库加载
libfile 文件操作库 libgevent 事件驱动
libhash linux内核原生哈希库 libipc 进程间通信
liblog 日志库,输出控制台/文件/rsyslog libmacro 通用宏
liblock 锁操作 libthread 线程
libosal OS适配层 libp2p p2p穿透
libptcp TCP协议封装 librbtree 红黑树
librpc 远程过程调用库 libskt Socket封装
libstun STUN 库 libtime 时间库
libqueue 数据队列 libringbuffer 循环缓冲
libworkq 工作队列 libvector 容器库

编译方法

推荐 Ubuntu14.04 gcc-4.8.4+ 及以上版本

  • linux 平台 (32/64 bit)
    $ cd libraries
    $ ./build.sh
    $ sudo ./build.sh install

  • host(linux) target(rasberrypi)
    (you need download toolchain of rasberrypi)
    $ ./build.sh all pi

  • host(rasberrypi board)
    $ ./build.sh
    $ sudo ./build.sh install

  • android arm 交叉编译
    (需要下载 android-ndk-r9-linux-x86_64.tar.bz2)
    $ ./build.sh all android

  • android 原生开发
    also need ndk tools
    $ cd android_jni_libs
    $ ndk-build

After install, the libxxx.xx will be installed in /usr/local/lib/.
libxxx.h, libxxx.so or libxxx.a of libraries are also in ./output/$(ARCH)

自动生成代码

如果要加入你自己的开发库,只需要执行如下命令,即可自动生成代码和编译框架
$ ./autogen_lib.sh libfoo

License

LGPL/GPLv3. Please refer to the LICENSE file for detailed information.

  • 一般的开源项目如nginx/ffmpeg/redis等,都有各自的基础库,且实现较为相近,取各库的优点,实现较为通用的库,且库的命名不带特定工程前缀,在实现自己的工程时,方便代码的快速集成。

  • 当库完成度和稳定性高时,会release 到ubuntu launchpad.net PPA供下载安装

  • liblog 已提供ubuntu 16.04 64bit下载

apt-get获取

$ sudo add-apt-repository ppa:gozfree/ppa
$ sudo apt-get update
$ sudo apt-get install liblog

作者与贡献者

非常欢迎参与开发维护这套基础库

CMShuyuhui core1011
elfring ktsaou
zh794390558 gozfree