当前位置: 首页 > news >正文

嵌入式开发之静态库和共享库

静态库

静态库的特点:

  • 默认执行库链接的时候,检索的是Linux的/lib、/usr/lib目录下,如果指定gcc -c ....  -L 指定路径  -l指定库文件;
  • c语言分为预编译、编译、汇编、链接四个步骤。链接的时候是把依赖库文件函数的代码拷贝到程序里面,即便是删除库文件。拷贝后的程序依旧可以执行。
  • 对生成的库文件有格式要求,以lib开头,.a文件结尾。例如:libmylibrary.a  
  • 缺点:每次发布程序或者更新静态库,都需要重新编译程序。
  • 程序会占用更到磁盘空间和内存。

要实现C语言编程静态库,可以按照以下步骤进行:

  1. 编写需要封装的函数或数据结构的源代码文件。这些源代码文件可以是以.c为扩展名的文件,其中包含了需要封装的函数的具体实现。

  2. 使用编译器将源代码文件编译成目标文件(Object File)。可以使用gcc编译器来编译C语言代码,使用以下命令将源代码文件编译成目标文件:

    gcc -c file1.c file2.c
    

    这将生成file1.ofile2.o两个目标文件。

  3. 使用静态库生成器(ar)将目标文件打包成静态库(Static Library)。可以使用以下命令将目标文件打包成静态库:

    ar rcs libmylibrary.a file1.o f
http://www.lryc.cn/news/478320.html

相关文章:

  • 关于npm源的切换及相关操作
  • vue前端sku实现
  • 使用Vue3和Vue2进行开发的区别
  • 爬虫入门urllib 和 request(二)
  • 【大数据学习 | HBASE】hbase的整体架构
  • 群控系统服务端开发模式-应用开发-个人资料
  • openssl生成加密,公钥实现非对称加密
  • [CKS] K8S Admission Set Up
  • 前端学习Day13 CSS盒子的定位(固定定位篇“附练习”)
  • Tomcat 启动卡住,日志显示 At least one JAR was scanned for TLDs yet contained no TLDs.
  • 计算机网络:网络层 —— 移动 IP 技术
  • useCrudSchemas
  • SpringBoot3集成Junit5
  • 【EMNLP2024】阿里云人工智能平台 PAI 多篇论文入选 EMNLP2024
  • Spark的Shuffle过程
  • Java+Swing可视化图像处理软件
  • RDD转换算子:【mapValues、mapPartitions】
  • 数组和指针的复杂关系
  • Linux系统I/O调优实例
  • 记录Ubuntu OS的异常
  • Vue 3 单元测试与E2E测试
  • 猫用空气净化器哪个牌子好?求除毛好、噪音小的宠物空气净化器!
  • 第十九课 Vue组件中的方法
  • 【JavaScript】V8,Nodejs 与浏览器
  • 内存马浅析
  • 聊一聊Elasticsearch的基本原理与形成机制
  • 应急救援无人车:用科技守护安全!
  • 详解Java之Spring MVC篇二
  • flutter鸿蒙next 使用 InheritedWidget 实现跨 Widget 传递状态
  • 计算机的错误计算(一百四十六)