Linux环境下动态库的生成与使用
2022/9/13 5:23:11
本文主要是介绍Linux环境下动态库的生成与使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、动态库的生成
定义 a.h、a.c 如下:
a.h
#include <stdio.h> #include <stdlib.h> void FuncA();
a.c
#include "a.h" void FuncA() { printf("我是 a\n"); }
- 调用
gcc -c -fpic a.c
指令在同级目录下生成 a.o 文件; - 调用
gcc -shared a.o -o liba.so
指令在同级目录下生成了 liba.so 动态库。
在 Linux 中动态库以 lib 作为前缀,以 .so 作为后缀,中间是库的名字,自己指定即可,即 libxxx.so。
二、动态库的使用
假设有个文件 b.c,在该文件中通过引用 a.h 实现对 FuncA() 的调用:
b.c
#include "a.h" int main() { FuncA(); return ; }
- 调用
export LD_LIBRARY_PATH="liba.so的绝对路径"
修改环境变量; - 调用
source ~/.profile
或source ~/.bashrc
使修改环境变量的指令生效; - 调用
gcc b.c -o b -L [liba.so的路径] -l a
链接动态库 liba.so- -L:在程序编译的时候,指定使用的库的路径
- -l:在程序编译的时候,指定使用的库。(库的名字一定要掐头去尾。如:liba.so变为 a)
- 调用
./b
运行程序,此时你会发现,程序成功运行并调用 FuncA()。
三、声明
参考资料:
- [Linux 环境下的动态库生成与使用](Linux 环境下的动态库生成与使用_峰上踏雪的博客-CSDN博客_linux动态库)
这篇关于Linux环境下动态库的生成与使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-30[译]漫画SELinux概念
- 2024-03-29linux 移动文件
- 2024-03-28linux .so file
- 2024-03-28Linux 磁盘管理
- 2024-03-28Linux学习笔记(十三)磁盘管理(一):磁盘分区
- 2024-03-26linux 创建 文件
- 2024-03-25使用SecureCRT对Linux vim进行颜色设置
- 2024-03-202019-2020-12 20199317 《Linux内核原理与分析》 第十二周作业
- 2024-03-20Linux运维的第二周总结
- 2024-03-13how to count number of directories in linux