静态库与动态库制作与使用
静态库
1. gcc获得.o文件
gcc -c xx.c xx.c
2.将.o文件打包成libxxx静态库,使用ar工具(archive)
ar rcs libxxx.a xxx.o xxx.o
r - 将文件插入备存文件中
c - 建立备存文件
s - 索引
使用
gcc main.c -o app -I ./include -L ./lib -l calc
将main.c 编译链接为app
-I 表示从之后的目录寻找头文件
-L 表示从之后的目录寻找静态库
-l 表示库名称,(注意:不是库文件名称libcalc.a)
动态库
命名规则
libxxx.so
lib:前缀(固定)
xxx:库的名字
.so:后缀(固定)
在Linux下是一个可执行文件
Windows:libxxx.dll
动态库的制作
1.gcc得到.o文件,得到和位置无关的代码
gcc -c -fpic/-fPIC a.c b.c
2.gcc的到动态库
gcc -shared a.o b.o -o libcalc.so
3.动态库使用
gcc main.c -o main -I ./include -L ./lib -l calc
直接输入./main会出现找不到动态库的错误
ldd main //列出可执行程序所使用的动态库和指向地址
1.临时配置:在命令行里配置动态库路径
新建终端就会失效
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:动态库绝对路径
// 绝对路径可进入到动态库的目录下输入pwd 获取
2.永久配置
用户级别:
在home目录下:vim .bashrc
在最后一行插入
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:动态库绝对路径
保存退出后,输入source .bashrc使之生效
系统级别:
在可执行程序所在目录下
sudo vim /etc/profile
· 最后一行插入
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:动态库绝对路径
保存退出后,输入source ./etc/profile使之生效
自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2018-11-10 Mining Station on the Sea HDU - 2448(费用流 || 最短路 && hc)
2018-11-10 spfa优化板子