初次体验下载安装glib库:gnome实现的数据结构库
工作时想使用一下数据结构处理一下工作内容,发现SDK里面没有封装好的内容。没工作之前没想到真的有一天要自己造轮子,还以为只是面试的八股文而已。但是也不能老造轮子对吧,而且还有可能健壮性不足,导致后面难追踪死机问题。所以就上网了解了一下linux环境有没有支持已经实现的C语言标准的数据结构库,可以直接拿来用。glib库广泛应用于桌面环境、嵌入式系统、GNOME等项目中。它提供了完整的面向对象编程模型
前言
工作时想使用一下数据结构处理一下工作内容,发现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源码)。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)