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
相关推荐
小麦嵌入式19 分钟前
Linux驱动开发实战(十一):GPIO子系统深度解析与RGB LED驱动实践
linux·c语言·驱动开发·stm32·嵌入式硬件·物联网·ubuntu
The Future is mine22 分钟前
Python计算经纬度两点之间距离
开发语言·python
Enti7c23 分钟前
HTML5和CSS3的一些特性
开发语言·css3
爱吃巧克力的程序媛30 分钟前
在 Qt 创建项目时,Qt Quick Application (Compat) 和 Qt Quick Application
开发语言·qt
独好紫罗兰1 小时前
洛谷题单3-P5719 【深基4.例3】分类平均-python-流程图重构
开发语言·python·算法
jelasin1 小时前
LibCoroutine开发手记:细粒度C语言协程库
c语言
篝火悟者1 小时前
自学-C语言-基础-数组、函数、指针、结构体和共同体、文件
c语言·开发语言
genispan2 小时前
QT/C++ 多线程并发下载实践
开发语言·c++·qt
-代号95272 小时前
【JavaScript】十三、事件监听与事件类型
开发语言·javascript·ecmascript
写代码的小王吧2 小时前
【Java可执行命令】(十)JAR文件签名工具 jarsigner:通过数字签名及验证保证代码信任与安全,深入解析 Java的 jarsigner命令~
java·开发语言·网络·安全·web安全·网络安全·jar