Linux文件:动静态库制作 & 动态库链接原理解析(Centos7)
前言
下面博主以实现简单的计算器为例,分别将计算机功能函数(+、-、*)就如何打包生成动静态库,以及模拟使用者如何!
实际上库中提供的通常是各种方法函数的目标文件xxx.o
,并不会直接提供源代码!这样做原因在于,当你需要使用该库时不需要重新编译节省时间,厂家也能闭源。其二在于当不同模块使用不同的库函数功能时,仅需将不同模块的目标文件组合链接即可,这样可有防止对同一段代码多次编译!!
除此之外,我们通常将头文件和实现方法放到特定路径下,方便用户查找安装!(头文件放到xxx/include
, 实现方法放到xxx/lib
,和内核保持一致)
函数功能源代码:
【加法】:
#pragma once
#include <stdio.h>
extern int Add(int, int);
#include "Add.h"
int Add(int x, int y)
{
return x + y;
}
【减法】:
#pragma once
#include <stdio.h>
extern int Sub(int, int);
#include "Sub.h"
int Sub(int x, int y)
{
return x - y;
}
【乘法】:
#pragma once
#include <stdio.h>
extern int Mul(int