目录
一、实验功能设计
此次实验共包括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)加载共享库,运行程序
四、实验结果
程序运行成功。
五、实验结果分析:
成功创建了静态库和共享库,并在程序中使用,通过此次实验加深了对静态库和共享库的理解及运用,也感受到了静态库和共享库的优缺点,静态库的优点是运行速度快,但维护麻烦,当静态库中内容更新后需要重新编译程序,使用静态库编译出的可执行文件会比共享库的要大。共享库的优点是使用方便,共享库如果发生变化不需要重新编译程序,使用它编译出的可执行文件比使用静态库要小,运行速度要比使用静态库慢。