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
相关推荐
cookies_s_s44 分钟前
C++ 字符串动态创建对象 -- 工厂模式、自动注册、模板递归动态调用
服务器·开发语言·c++
盐焗鹌鹑蛋2 小时前
【C++】继承
开发语言·c++
栈溢出了2 小时前
Java Lambda 表达式笔记
java·开发语言·intellij-idea
zhixingheyi_tian2 小时前
一份GC日志的解读
java·开发语言
czhaii2 小时前
串口1中断收发-C语言-MODBUS协议
c语言·开发语言
apihz3 小时前
随机驾考题目(C 照科一 / 科四 2000+ 题)免费API调用教程
android·java·c语言·开发语言·网络协议·tcp/ip
matlab代码3 小时前
基于matlab人脸疲劳驾驶检测系统(可使用其它人脸视频)【源码39期】
开发语言·matlab·人脸疲劳检测
zenithdev14 小时前
fastcache:为 Go 设计的低 GC 压力内存缓存
开发语言·其他·缓存·golang
想你依然心痛4 小时前
自定义RTOS内核:从零实现上下文切换与任务调度——汇编、PendSV
java·开发语言·汇编·pendsv
geovindu5 小时前
java:Abstract Factory Pattern
java·开发语言·后端·设计模式·抽象工厂模式·创建型模式