Go 1.21 的 slice 使用问题

最近在研究 CoreDNS 插件,但个人之前又没有 Go 语言基础,于是一边学习一边编写插件。可以说只用了 20% 的时间就摸清楚了 Go 语言 80% 的内容。但剩下的 20% 还没掌握,或者说是深刻理解。这不,遇到了个 for slice 的问题,于是记录下相关的解决办法和原理。

阅读更多

动态链接编程

编写一些大型应用程序时,如果将所有的源文件一起编译,则牵一发而动全身,任何文件微小的修改都需要重新编译整个项目,则显然是相当低效的。所以,将一个项目分为几个依赖库,运行的时候再查找对应库中的入口,能提高效率。这就是动态链接库,Linux下为so文件,Windows下则为DLL文件。

在一篇文章将介绍常用的开发动态链接库的技巧和方法。

阅读更多

解决glibc版本兼容问题

如何在Linux上运行一个C语言程序?C语言程序要在操作系统上运行,还需要调用各种系统功能,因此还需要C支持库才能运行。Linux上的C支持库之一,也是使用最广泛的支持库,就是glibc。但是使用过程中,可能因为支持库版本不同而造成兼容性问题,造成软件无法运行。今天我就遇到了这个问题,在网上搜索了一圈后,终于找到了有效的解决办法。

阅读更多