前言:
此时我们对“linux动态库的动态链接与静态链接”大约比较关怀,你们都想要剖析一些“linux动态库的动态链接与静态链接”的相关资讯。那么小编也在网上收集了一些有关“linux动态库的动态链接与静态链接””的相关文章,希望各位老铁们能喜欢,咱们快快来了解一下吧!本教程以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所示:
标签: #linux动态库的动态链接与静态链接 #ubuntu 动态库链接传递 #linux静态库和共享库 #静态库和动态库ubuntu