在工作中,由于团队长期的技术积累,会对一些比较通用的代码进行封装,例如socket通信、内存管理和线程管理等。
一是这些模块都比较关键和常用,进行封装后,避免每次都去造轮子。二是在开发后,在性能上和功能上都满足需求,要保证其相对稳定。
这就会涉及到如何引用这些公用代码的方法。可以分为下面两种情况:
如果代码比较精简的话,可以直接讲代码包含到工程中去,这是一种比较简单的方法。但是要注意对这些文件进行修改要谨慎,因为这些代码可能别的同事也在使用,而且也不能保证添加的不影响功能和性能。
如果这些公用模块是以动态库或者静态库的形式提供的话,就需要这些公用模块所生成的动态库或者静态库以及相对应的头文件。这样在工程中设置链接上动态库,再加上指定头文件即可使用。例如在编程多线程时,要用到 -lthread 就是要链接的动态库。
大多数的开源项目也都是以动态库的形式提供的。这样对不需要关注这个动态库内部如何实现的程序员来说,只要知道如何使用它的接口就可以,但是如果是其他目的可能就需要去研究其源代码。而商业的绝大多数都是以动态库的形式提供(只有一个动态库和必要的头文件)。