libraries English
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
LGPL/GPLv3. Please refer to the LICENSE file for detailed information.
-
一般的开源项目如nginx/ffmpeg/redis等,都有各自的基础库,且实现较为相近,取各库的优点,实现较为通用的库,且库的命名不带特定工程前缀,在实现自己的工程时,方便代码的快速集成。
-
当库完成度和稳定性高时,会release 到ubuntu launchpad.net PPA供下载安装
-
liblog 已提供ubuntu 16.04 64bit下载
$ sudo add-apt-repository ppa:gozfree/ppa
$ sudo apt-get update
$ sudo apt-get install liblog
非常欢迎参与开发维护这套基础库
CMShuyuhui | core1011 |
elfring | ktsaou |
zh794390558 | gozfree |