首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
华为云
V2EX  ›  程序员

通用的C基础库,推荐给还在用 c 的同学们

  •  
  •   gozfree · 5 天前 · 2352 次点击
    如今写C的人越来越少,大都涌向了 ios/android/python/web 方向,寻找C开源项目的,要不是刚打算做码农写C练手打基础,要不是从事服务端开发(也基本用 C++/Java 而不用C),剩下的就是嵌入式硅农。

    各大网站 github,oschina,csdn,在上面 ios/android/web 的资源占太多,做的项目基本都能找到抄的例子,而且对于 python/js 人太幸福了,里边有太丰富的包,节省太多精力。

    说实在的,写C太累了,封装好的易用的库相对太少,想抄找不到,只能自己造轮子,还是方的。

    我在造轮子之前也在 github 上找了一圈,比如 nifflerfox/libsg(半成品已经不维护了)  tboox/tbox (也是很好的库,但是上层功能偏少) davisking/dlib(这个是 C++)  Apr( Apache Portable Runtime Library,感觉也太冗余),glib2 (各种 g_开头的定义受不了)

    只好自己动手 gozfree/libraries,工作项目中重复代码写多了,就提出来作为通用代码,用起来确实很爽,也会把 nginx/ffmpeg/vlc/kernel 里的精炼代码扣出来自己用。

    https://github.com/gozfree/libraries
    https://gitee.com/gozfreee/libraries
    第 1 条附言  ·  5 天前
    补充下:还有 acl-dev/acl 全面网络服务框架的 C/C++库,chenshuo/muduo 多线程网络库
    20 回复  |  直到 2018-11-12 15:27:44 +08:00
        1
    songteng0604   5 天前
    谢谢
        2
    dazhangpan   5 天前   ♥ 7
    对 C 还是要有信心的,整个计算机世界的基石还是由 C 构建的,包括你提到的 iOS/Android/python。已经逐渐走来的云计算、边缘计算、物联网的世界里对性能、功耗、时延的要求非常严苛,C 这种可以操控细节的语言正是必需的技术。用 Python/js 固然可以享受新语言带来的优势和便捷,但如果不深入探究,也只能沦为层出不穷的新框架的奴仆。建议还是深入掌握 C,这不是一门语言,而是开启计算机系统知识,从别人的框架中获得自由的钥匙;相对新的语言也要掌握,因为这是一个去远方游荡的游子,找到回家的路的方式。
        3
    innoink   5 天前 via Android
    你知道 acl 么
        4
    gozfree   5 天前
    @dazhangpan 大赞最后一句
        5
    gozfree   5 天前
    @innoink 刚看到,很全面的基础库
        6
    waruqi   5 天前
    很赞! tbox 定位在基础跨平台,所以上层功能确实不多,另外推荐可以试试用 xmake 来实现跨平台构建哦。。
        7
    liuminghao233   5 天前 via iPhone
    还有 boost asio (
        8
    gozfree   5 天前
    @waruqi 感谢大佬回复,感觉 tbox 社区推广很不错,能吸纳更多的人来一起开发,大赞
        9
    waruqi   5 天前 via Android
    @gozfree 哈哈 这是错觉 没社区 也没其他人开发 就我在自娱自乐哦。。= =
        10
    gozfree   5 天前
    类似的库能举出很多,但其实初衷是想将这套库贡献给玩嵌入式的人,尤其是流媒体方向的,后期会完善和增加 rtsp/rtmp 的协议,比如能够让你快速实现一个 linux 版的 camera 客户端
        11
    huawuya   5 天前
    c++的库用的比较多,poco project,boost 等
        12
    changnet   5 天前 via Android
    c++和 c 都是偏底层的,而各个行业都需要针对底层做优化,这些库都是不通用的。我之前我想做通用库,但是几年之后发现,要么我换种语言,拿现成的,要么我自己写,只用 stl 这种基础结构就好。
        13
    t6attack   5 天前
    插个楼,关于 C/C++这个说法。有人说放一起不恰当,因为 C 和 C++是两门语言。
    但我觉得,这种说法没问题。因为 C/C++混写的项目非常多。很难把两者彻底拆开。打开一个大型开源项目源码,既有.c 文件,也有.cpp 文件。而在.cpp 文件里,随处可见 C 语法,比如输出时使用 printf。那么这算 C 开发的还是 C++开发的?只能说它是 C/C++开发的。
    至于不混写的项目,可以称为“纯 C 开发的”。Git 就是纯 C 开发的。当年还为此引爆了一波语言之争。
    https://www.baidu.com/s?wd=Linux%E4%B9%8B%E7%88%B6%E7%82%AE%E8%BD%B0C%2B%2B
    https://www.sogou.com/web?query=Linux%E4%B9%8B%E7%88%B6%E7%82%AE%E8%BD%B0C%2B%2B
        15
    akakcolin   5 天前
    我还是很喜欢 c 的,自己也有意识地去积累一些库,谢谢楼主,楼主加油
        16
    gozfree   5 天前
    @t6attack 并不是想讨论 C 和 C++的语言之争,做项目还是看需求和团队擅长的地方,用不好都会有坑。
    本人喜欢 C 的简单明了,况且有 nginx/ffmpeg 等诸多项目可以参考就够了
    多谢支持
        17
    gozfree   5 天前
    @aptx4689 librpc 的测试用例,都在 code 里,没有任何秘密
        18
    gozfree   5 天前
    @akakcolin 感谢!
        19
    gozfree   5 天前
    @aptx4689 噢,测试 RPC 需要有 RPC server,当时自己买的 VPN,到期不能用了,可以 localhost 测试
        20
    waruqi   4 天前
    @gozfree 给你发了邮件,不知道是否有兴趣加一下我的技术群?大家一起交流
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   729 人在线   最高记录 3821   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 20ms · UTC 19:46 · PVG 03:46 · LAX 11:46 · JFK 14:46
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1