这是一款大神级开源代码,基于c语言的,几乎包含了嵌入式开发的各个部分的封装,可以说是嵌入式系统的瑞士军刀! 注:源码作者不是我,我这里只是推荐,帮忙宣传。
TBOX是一个用c语言实现的跨平台开发库。
针对各个平台,封装了统一的接口,简化了各类开发过程中常用操作,使你在开发过程中,更加关注实际应用的开发,而不是把时间浪费在琐碎的接口兼容性上面,并且充分利用了各个平台独有的一些特性进行优化。
这个项目的目的,是为了使C开发更加的简单高效。
目前支持的平台有: Windows, Macosx, Linux, Android, iOS, *BSD等等。
通过xmake[1]支持各种编译模式:
如果你想了解更多,请参考:在线文档[2], Github[3]以及Gitee[4]
针对http、file、socket、data等流数据,实现统一接口进行读写,并且支持: 阻塞、非阻塞、异步 三种读写模式。支持中间增加多层filter流进行流过滤,实现边读取,内部边进行解压、编码转换、加密等操作,极大的减少了内存使用。
主要提供以下模块:
stream
:通用非阻塞流,用于一般的单独io处理,同时支持协程以实现异步传输。transfer
:流传输器,维护两路流的传输。static_stream
:针对静态数据buffer优化的静态流,用于轻量快速的数据解析。memset_u16
、memset_u32
等接口,并对其进行高度优化,尤其适合图形渲染程序请先安装: xmake[10]
# 默认直接编译当前主机平台
$ cd ./tbox
$ xmake
# 编译mingw平台
$ cd ./tbox
$ xmake f -p mingw --sdk=/home/mingwsdk
$ xmake
# 编译iphoneos平台
$ cd ./tbox
$ xmake f -p iphoneos
$ xmake
# 编译android平台
$ cd ./tbox
$ xmake f -p android --ndk=xxxxx
$ xmake
# 交叉编译
$ cd ./tbox
$ xmake f -p linux --sdk=/home/sdk #--bin=/home/sdk/bin
$ xmake
$ ./configure
$ make
#include "tbox/tbox.h"
int main(int argc, char** argv) {
if (!tb_init(tb_null, tb_null)) return 0;
tb_vector_ref_t vector = tb_vector_init(0, tb_element_str(tb_true));
if (vector) {
tb_vector_insert_tail(vector, "hello");
tb_vector_insert_tail(vector, "tbox");
tb_for_all (tb_char_t const*, cstr, vector) {
tb_trace_i("%s", cstr);
}
tb_vector_exit(vector);
}
tb_exit();
return 0;
}