和Vamei大佬学动态链接库(.so)
每一个C程序中,除了用于实现算法和数据结构 (比如栈和相关的操作),还有用于测试的main()函数,结构体定义,函数原型,typedef等等。
这样的做法非常不“环保”。算法的实际运用和算法的实现混在一起。如果我想要重复使用之前的源程序,必须进行许多改动,并且重新编译。最好的解决方案是实现模块化: 只保留纯粹的算法实现,分离头文件,并编译一个库(library)。每次需要使用库的时候(比如使用栈数据结构),就在程序中include头文件,连接库。这样,不需要每次都改动源程序。
我在这里介绍如何在UNIX环境中创建共享库 (shared library)。UNIX下,共享库以so为后缀(shared object)。共享库与Windows下的DLL类似,是在程序运行时动态连接。多个进程可以连接同一个共享库。
- #include "..."; 语句将首先在工作目录寻找相应文件。如果使用gcc时,增加-I选项,将在-I提供的路径中寻找
- 对于#include <...>,编译器会在默认include搜索路径中寻找。
- 库文件以lib开头,所以指定库文件的时候可以省去lib
单独摘抄会失去灵魂,建议反复阅读原文
ref:https://www.cnblogs.com/vamei/archive/2013/04/04/2998850.html
浙公网安备 33010602011771号