Linux的文件操作中的静态库的制作

Linux操作系统支持的函数库分为:

静态库,libxxx.a,在编译时就将库编译进可执行程序中。

优点:程序的运行环境中不需要外部的函数库。

缺点:可执行程序大 (因为需要 编译)

动态库,又称共享库,libxxx.so,在运行时将库加载到可执行程序中。

优点:可执行程序小。

缺点:程序的运行环境中必须提供相应的库。

静态库的制作

1.生成目标文件:gcc -c file.c .o

2.静态函数库创建命令ar

ar -cr libfile.a file.o

-c: create的意思

-r:replace的意思表示当插入的模块file.o已经存在libfile.a中,则覆盖。反之ar显示一个错误消息。

操作静态库的几个实例:

情况1: 如果从别处得到一个静态库libunknown.a,想知道其中包含哪些模块。 命令:ar -t libunknown.a

静态库的编译:gcc -o main main.c -L. -lfile编译main.c就会把静态函数库整合进main。

其中: -L指定静态函数库的位置供查找,注意L后面还有'.',表示静态函数库在本目录下查找。 -l则指定了静态函数库名,由于静态函数库的命名方式是lib***.a,其中的lib和.a忽略。 删除libaddsub.a后main依然可以运行,因为静态库的内容已经整合进去了。

相关推荐
路由侠内网穿透.24 分钟前
本地部署开源书签管理工具 LinkAce 并实现外部访问( Linux 版本)
linux·运维·服务器·网络·网络协议·开源
ljh5746491191 小时前
linux awk 命令
linux·运维·chrome
向依阳1 小时前
RV1126准备-----编译和测试SDK自带的RKNN例程
linux·rv1226
the sun341 小时前
Linux驱动开发:环境准备与报错处理
linux·运维·服务器
MC_J1 小时前
Linux 6.1 移植RTL8723du驱动
linux·arm
彭泽布衣2 小时前
Linux如何指定源端口打流
linux·运维·网络
晨晖22 小时前
Linux命令3
linux·运维·服务器
素雨迁喜2 小时前
Linux平台下git工具的使用
linux·运维·git
十年编程老舅3 小时前
Linux DMA 技术深度拆解
linux·网络·linux内核·dma·c/c++·内存访问
jianqiang.xue3 小时前
ESP32-S3 运行 Linux 全指南:从 RISC-V 模拟器移植到 8 秒快速启动
linux·stm32·单片机·mongodb·risc-v·esp32s3