程序和库实验(静态库、动态库的使用)

本文详细描述了一次实验,涉及创建静态库和共享库,实现基础运算和文本输出功能。实验展示了从源代码到编译、链接和运行的过程,并对比了静态库与共享库的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、实验功能设计

二、源代码

1、创建静态库以及使用

2、创建共享库及使用

三、源文件处理过程

1.静态库

2、共享库

四、实验结果


一、实验功能设计

此次实验共包括5个源文件,2个头文件以及1个测试文件主要实现了加减运算、乘法运算、最大值输出以及文字输出功能,并分别创建了静态库和共享库在程序中使用。

二、源代码

1、创建静态库以及使用

编辑静态库源码:

  vim add.c

vim sub.c

vim mul.c

vim max.c

vim src.c

实现小组名称和小组成员的输出

  • 编辑头文件:

vim head.h

vim src.h

vim main.c

(1)编译出目标文件:

gcc -c add.c sub.c mul.c max.c src.c

(2)把目标文件打包成静态库文件:

ar rcs mylib.a add.o sub.o mul.o max.o src.o

(3)编译main.c并链接静态库mylib.a

gcc -static -o myproc main.o ./mylib.a

(4)使用静态库

./myproc

2、创建共享库及使用

(1)把目标文件打包成共享库:

gcc -shared -fPIC -o libmy.so add.c sub.c mul.c max.c src.c

(2)编译main文件并链接共享库 libmy.so

gcc -o main main.c -L ./ -lmy

(3)加载共享库运行程序

./main

三、源文件处理过程

1.静态库

(1)用vim编辑源代码及头文件

(2)用gcc编译源代码,把.c文件变成.o文件

(3)使用 ar 命令将第一步编译的所有.o文件生成静态库mylib.a

(4)编译main.c并链接静态库mylib.a:

(5)加载静态库,运行程序

2、共享库

(1)使用 gcc 将源文件进行汇编,生成与位置无关的目标文件,需要使用参数 -fPIC

(2)编译main.c并链接静态库libmy.so

(3)加载共享库,运行程序

四、实验结果

程序运行成功。

五、实验结果分析:

成功创建了静态库和共享库,并在程序中使用,通过此次实验加深了对静态库和共享库的理解及运用,也感受到了静态库和共享库的优缺点,静态库的优点是运行速度快,但维护麻烦,当静态库中内容更新后需要重新编译程序,使用静态库编译出的可执行文件会比共享库的要大。共享库的优点是使用方便,共享库如果发生变化不需要重新编译程序,使用它编译出的可执行文件比使用静态库要小,运行速度要比使用静态库慢。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值