目录
将我们所实现的方法给别人用有以下两种方式:
**提供源码文件(.h 头文件 + .c 源文件)。使用者需要重新编译,但能看到你的实现代码,优点是可调试、可修改、跨平台适应性好(源码可以在用户环境中针对特定平台重新编译),缺点是暴露实现细节,编译时间长提供库文件(.h 头文件 + .a/.so/.lib/.dll 库文件)。**使用者直接链接,看不到源代码,优点是保护知识产权,编译快,版本控制方便,缺点是调试困难(未知实现),平台依赖性强(架构等绑定问题:x64库不能在ARM上运行)
**头文件的本质是库的说明书,它告诉编译器有什么,
没有头文件,编译器就无法生成正确的函数调用代码**
1.静态库
1.1静态库的概念特点与静态链接
静态库是一个包含多个已编译目标文件的归档文件,通常用于代码复用
在不同系统中有不同的格式和扩展名:
Linux/Unix: .a 文件(Archive,由 ar 命令创建)
Windows: .lib 文件(Library)
macOS: .a 或 .framework(框架包含静态库)
静态库的特点
- 编译时链接:库代码在程序编译时被直接复制到最终的可执行文件中
- 独立运行:生成的可执行文件不依赖外部库文件
- 体积较大:相同库代码在每个使用它的程序中都有副本

