前言

        工作时想使用一下数据结构处理一下工作内容,发现SDK里面没有封装好的内容。没工作之前没想到真的有一天要自己造轮子,还以为只是面试的八股文而已。但是也不能老造轮子对吧,而且还有可能健壮性不足,导致后面难追踪死机问题。所以就上网了解了一下linux环境有没有支持已经实现的C语言标准的数据结构库,可以直接拿来用。

        简介:

glib库广泛应用于桌面环境、嵌入式系统、GNOME等项目中。它提供了完整的面向对象编程模型(GObject)、信号/槽机制、内存管理等高级功能。主要我是想要一套能够好用的轮子,不讲那么多。

下面内容是搜索网上内容整合,作为经验汇总:

1.通过apt命令安装glib
sudo apt update #更新软件列表
sudo apt install libglib2.0-dev #下载2.0版本

2.添加使用
#include<glib-2.0/glib.h>
#include<stdio.h>
#include<unistd.h>
int main() {
    gchar *str = NULL;
    gboolean ret = FALSE;
    printf("glib_major_version:%d\n", glib_major_version);
    printf("glib_minor_version:%d\n", glib_minor_version);
    printf("glib_micro_version:%d\n", glib_micro_version);
    str = (gchar *)glib_check_version(2, 70, 1);
    if(NULL != str) {
        printf("str:%s \n", str);
    } else {
        printf("GLib library is compatible with your given version(2.70.1) \n");
    }
    return 0;
}
3.编译指令(主要是传递给gcc的库以及头文件的包含路径)
gcc -o my_program main.c -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -lglib-2.0 -lgobject-2.0

        方便的话直接在makfiile用Cflags+=-I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -lglib-2.0 -lgobject-2.0包起来,然后给gcc。

test结果

        非常好,而且glib的作者非常扭二壁纸,很厉害的。他们实现的源代码都非常优雅,有空值得学习。那么学习在哪里呢?下载的glib有没有包含源码?其实没有。

        源码地址在这里GNOME / GLib · GitLab

下次需要轮子就翻看一下自己这篇记录。好消息是:在windows好像也有这个库的实现,是跨平台的。但是windows的也可以考虑使用MSVC微软实现的数据结构(STL源码)。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐