程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

Linux动态库和静态库教程

balukai 2025-01-10 11:34:27 文章精选 8 ℃

本教程以Ubuntu16.04系统为例,实验涉及的程序文件有:xyhcal.c,add.c,sub.c,mul.c,xyhcal.h,这五个文件的源代码如图1所示:

Linux动态库具体实现步骤如下:

1. 将add.c,sub.c,mul.c文件编译为.o文件(不链接),使用gcc -fPIC -c命令操作,具体实现如下:

实例:gcc -fPIC -c add.c -o add.o

gcc -fPIC -c sub.c -o sub.o

gcc -fPIC -c mul.c -o mul.o

实现过程如图2所示:

2. 将add.c,sub.c,mul.c文件生成的.o文件编译为动态库,具体命令实现如下:gcc -shared -Wl,-soname,libmycal.so.1 -o libmycal.so.1.1 add.o sub.o mul.o。

命令实现如图3所示:

3. 添加动态库并编译xyhcal.c程序

命令实现:gcc xyhcal.c libxyhcal.so.1.1 -o xyhcal,如图4所示:

4. 用ldd查看xyhcal程序是否缺少动态库链接路径,命令实现如图5所示:

5. 添加动态库路径,用sudo vim /etc/ld.so.conf命令文件,添加/home/xyh/xyhcal目录。实现如图6,图7所示:

6. 更新生效ld.so.conf文件,Shell终端输入命令sudo ldconfig -v,实现如图8所示:

7. 运行程序./xyhcal,命令实现如图9所示:

Linux静态库具体实现步骤如下:

1. 将add.c,sub.c,mul.c文件编译为.o文件(不链接),使用gcc -fPIC -c命令操作,具体实现如下:

实例:gcc -fPIC -c add.c -o add.o

gcc -fPIC -c sub.c -o sub.o

gcc -fPIC -c mul.c -o mul.o

实现过程如图10所示:

2. 将生成的.o文件编译为静态库

命令实现:ar src libxyhcal.a add.o sub.o mul.o,结果如图11所示:

3. 编译xyhcal.c文件,如图12所示:

4. 运行程序xyhcal程序,结果如图13所示:

最近发表
标签列表