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
相关推荐
y52364819 分钟前
Javascript监控元素样式变化
开发语言·javascript·ecmascript
IT技术分享社区1 小时前
C#实战:使用腾讯云识别服务轻松提取火车票信息
开发语言·c#·云计算·腾讯云·共识算法
极客代码1 小时前
【Python TensorFlow】入门到精通
开发语言·人工智能·python·深度学习·tensorflow
疯一样的码农1 小时前
Python 正则表达式(RegEx)
开发语言·python·正则表达式
&岁月不待人&1 小时前
Kotlin by lazy和lateinit的使用及区别
android·开发语言·kotlin
StayInLove1 小时前
G1垃圾回收器日志详解
java·开发语言
TeYiToKu1 小时前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
无尽的大道2 小时前
Java字符串深度解析:String的实现、常量池与性能优化
java·开发语言·性能优化
互联网打工人no12 小时前
每日一题——第一百二十四题
c语言
爱吃生蚝的于勒2 小时前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法