Linux静态库的制作

Linux操作系统支持的函数库分为:

静态库,libxxx.a,在编译时就将库编译进可执行程序中。

优点:程序的运行环境中不需要外部的函数库。

缺点:可执行程序大

动态库,又称共享库,libxxx.so,在运行时将库加载到可执行程序中。

优点:可执行程序小。

Linux静态库的制作

1.对sub 库函数进行定义生成目标函数

gcc sub.c -c -o sub.o

2.使用静态函数库创建命令ar,创建sub.a

ar -cr filsub.o sub.a

3.创建静态库函数后 ,静态库的编译:gcc -o main.c -L. -lsub 编译main.c就会把静态函数库整合进main.

4.执行函数./a.out

创建主函数main.c

objectivec 复制代码
#include<stdio.h>
int main()
{
int x;
int y;
int ret;
x=10;
y=5;
ret=sub(x,y);
printf("sub is %d/n",ret);

return 0;
}

创建库函数sub.c

objectivec 复制代码
int sub(int x,int y)
{

        return (x-y);


}

如果直接执行 gcc main.c 会显示没有清晰定义sub:

对sub 库函数进行定义生成目标函数

gcc sub.c -c -o sub.o

目标函数生成成功后,使用静态函数库创建命令ar,创建sub.a

ar -cr filsub.o sub.a

生成静态库函数后 ,静态库的编译:gcc -o main.c -L. -lfile编译main.c就会把静态函数库整合进main.

首先生成a.out文件 : gcc -o main.c -L. -lfile

然后运行./a.out,就可以输出main.c里面的内容了

相关推荐
Logic1018 小时前
C语言/数据动态规划题解:翻转一次子数组后的最大子数组和——四状态DP(O(n)时间O(1)空间)
c语言·数据结构·动态规划·时间复杂度·算法题·状态机dp·最大子数组和
H_oRIZoN_9 小时前
Linux入门DAY41(51 单片机 串口与通信协议)
linux·运维·单片机
Logic10110 小时前
C语言/数据结构字符串题解:找出DNA序列中未配对的独特序列——排序+遍历(O(nlogn))
c语言·数据结构·字符串·数组·排序·时间复杂度·算法题
Navigator_Z10 小时前
LeetCode //C - 1248. Count Number of Nice Subarrays
c语言·算法·leetcode
是隼人10 小时前
buuctf-pwn picoctf_2018_shellcode(ret2shellcode)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
潜创微科技11 小时前
IT6520:USB-C 转 MIPI 高集成控制器,DP 1.4a 转 MIPI 单芯片搞定 4K120 显示
c语言·开发语言·低延迟·掌机·联阳
GeW11 小时前
RHCE备考别瞎学!按这个计划走,30天提高通过率,快速拿证
linux
Escalating_xu11 小时前
【System V 信号量】从 P/V 原语到 Builder 封装:写出可控、可清理的进程互斥组件
java·linux·开发语言·jvm
傲世仙尊11 小时前
System V 进程间通信详解:共享内存、消息队列与信号量(CSDN博客)
linux·开发语言·c++
码农小韩11 小时前
Linux应用开发(六)——进程间通信
linux·linux驱动·嵌入式软件开发·嵌入式操作系统·linux应用