C-数据结构-动态库

/*

动态库基本实现

c 复制代码
libxx.so   xx是库名  .so 后缀
gcc -shared -fpic -o libxx.so yyy.c

发布到 
/usr/local/include/
/usr/local/lib

在  /etc/ld.so.conf 中添加路径 
/sbin/ldconfig   重读  /etc/ld.so.conf   为了上面的步骤生效
gcc -I/usr/local/include -L/usr/local/lib -o ... -lxx
ldd 命令

非 root 用户发布
cp xx.so ~/lib
export LD_LIBRARY_PATH=~/lib

当动态库与静态库重名 首先链接动态库  尽量不要重名

*/

llish.h,llist.c,mian.c,Makefile

c 复制代码
gcc -shared -fpic -o libllist.so llist.c   生成libllist.so
cp llist.h /usr/local/include/
cp libllist.so /usr/local/lib/
vim /etc/ld.so.conf     添加路径   /usr/local/lib/
/sbin/ldconfig   运行重读 生效
gcc -o main main.c -lllist
./main
ldd ./main

下面进行举例 针对 本专栏文章 C-数据结构-链式存储栈(二次封装)

llist.c llist.h main.c Makefile stack.h stack.c

c 复制代码
gcc -share -fpic -o libstack.so stack.c  生成libstack.so
mv libstack.so /usr/local/lib/
cp stack.h /usr/local/include/
/sbin/ldconfig    重读
gcc -o main main.c -lstack -lllist  双重链接依赖,有依赖关系时,被依赖的库写后面
ldd ./main

下面进行举例 针对 本专栏文章 C-数据结构-链式存储队列

llist.c llist.h main.c Mkaefile queue.c queue.h

c 复制代码
gcc -shared -fpic -o libqueue.so queue.c  生成libqueue.so
mv libqueue.so /usr/local/lib/
cp queue.h /usr/local/include/
/sbin/ldconfig    重读
gcc -o main main.c -lqueue -lllist 
./main
相关推荐
小糯米60123 分钟前
C语言 自定义类型:结构体 与 联合体
c语言·开发语言·数据结构
jieyucx24 分钟前
Go 语言 JSON 序列化与反序列化
开发语言·golang·json·序列化
罗超驿31 分钟前
6.Java多线程详解:Thread类、线程属性与start()方法深度解析
java·开发语言·面试·java-ee
yzq19912740 分钟前
10.C语言-表达式、左值与语句
c语言·指针·函数·表达式·语句
海的透彻1 小时前
jmeter预制处理器JSR223-加解密
开发语言·jmeter·sm2·jsr233
asyxchenchong8881 小时前
R+VIC 模型融合实践技术应用及未来气候变化模型预测
开发语言·r语言
Run_Teenage1 小时前
算法模板:输入输出,并查集
java·开发语言·算法
古城小栈1 小时前
Rust Tauri:构建轻量高性能跨平台桌面应用
开发语言·后端·rust
Chase_______1 小时前
【Java杂项】String 为什么不可变?从对象引用、常量池到字符串拼接讲清楚
java·开发语言
xwjalyf1 小时前
javascript数组 forEach,filter,some,every,map,find,reduce的用法与区别
开发语言·javascript·json·ecmascript