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-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南