文章目录

  • 七:动态库和静态库
    • (1)什么是库
    • (2)静态库和动态库初步认识
      • A:静态库
      • B:动态库
      • C:头文件和库文件的关系

七:动态库和静态库

(1)什么是库

库就是现有的,已经写好的可复用的代码。每个程序都要依赖很多基础的底层库,不可能每个人编写代码时都要从0写起(比如printf,scanf)

本质上库是一种可执行代码的二进制形式,可以被操作系统载入内存。库主要分为静态库(.a .lib)和动态库(.so .dll)

静态和动态指的就是链接。我们知道编译一个C程序需要经过预处理,编译,汇编和链接这4个步骤。在链接这个步骤,会将obj文件与系统库进行链接生成可执行文件。

Linux系统编程24:基础IO之在Linux下深刻理解C语言中的动静态库以及头文件和库的关系相关推荐

  1. 【Linux系统编程:基础IO 下】dup2 实现输出重定向、输入重定向、追加重定向 | 理解磁盘 | 理解文件系统中inode的概念 | 软硬链接

    写在前面 这里先接着<基础IO 上>中的缓冲区的内容作些补充,这里主要补充 dup2 接口. ✔ 测试用例一: #include<stdio.h> #include<sy ...

  2. Linux系统编程——进程基础知识

    Linux系统编程--进程基础知识 1.程序和进程 程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu.内存.打开的文件.设备.锁-) 进程,是一个抽象的概念,与操作系统原理联系紧密.进程 ...

  3. 【linux系统编程】基础开发工具:gcc/g++

    Linux C/C++ 编译器 – gcc/g++ 正文开始@Assassin 目录: Linux C/C++ 编译器 -- gcc/g++ 1. gcc/g++ 基本用法: 2. C/C++编译基本 ...

  4. linux编程基础_第1篇 Linux系统编程 -多线程基础

    进程 在理解线程之前,首先需要了解UNIX/Linux进程. 进程是由操作系统创建的,需要相当数量的"开销". 进程包含有关程序资源和程序执行状态的信息,包括:它是一个在随机访问内 ...

  5. linux系统编程课程改革,项目驱动的Linux操作系统课程教学改革

    摘 要 <Linux操作系统>是一门应用性很强的课程,在技师学院已被列为计算机网络技术专业的教学计划.在传统的教学模式中,教师往往按照教材编排的顺序,把知识介绍给学生,而不是把知识的应用方 ...

  6. Linux系统编程----12(线程概念,Linux线程实现原理,栈中ebp指针和ebp指针,线程的优缺点和共享资源)

    线程概念 什么是线程 在一个程序里的一个执行路线就叫做线程(thread). 更准确的定义是:线程是"一个进程内部的控制序列" 一切进程至少都有一个执行线程 线程在进程内部运行,本 ...

  7. Linux系统编程7:入门篇之Linux项目自动化构建工具-Make/Makefile的超强使用指南

    文章目录 (1)前言 (2)依赖关系和依赖方法 (3)单文件Makefile (4)多文件Makefile (5)总结 (1)前言 对于一个大型项目,可能会涉及到很多文件,例如头文件,源文件等等.在V ...

  8. Linux系统编程20:基础IO之从内核代码深刻理解Linux是如何管理文件及文件描述符的本质是什么

    文章目录 (1)文件描述符到底是什么 A:输出描述符 B:文件描述符 (2)系统如何管理文件 (3)一切皆文件 (4)用源代码验证 (5)FILE (1)文件描述符到底是什么 A:输出描述符 编写如下 ...

  9. 【linux系统编程】基础开发工具:vi/vim

    Linux文本编辑器 – vim 正文开始@Assassin 目录: Linux文本编辑器 -- vim 1. vim基本介绍: 2. vim下各模式的切换: 3. vim命令模式: 4. vim底行 ...

最新文章

  1. 十进制转换成十六进制c语言 链栈,C语言 链栈 实现十进制转换二进制,八进制,十六进制...
  2. pkg-config的使用
  3. Sobel算子取代:基于特定点方向的canny边缘检测
  4. es6 迭代器_揭秘ES6迭代器和迭代器
  5. Quartz 定时任务(Scheduler)的 3 种实现方式
  6. Java-Redis 热部署问题
  7. C#中break,continue,return,,goto,throw的区别(转)
  8. 罗莎琳德·富兰克林:隐于幕后的DNA之母,以及她被误解却又伟大的短暂一生...
  9. 织梦文章批量更新软件
  10. Confluence 6 修改警告的阈值和表现
  11. ubuntu通过vmware与访问宿主的文件
  12. JS脚本defer的作用
  13. 超快速的端到端实例分割模型,手把手教你用opencv部署Yolact
  14. Swift 接入LinkedIn登录
  15. 禁止国外IP连接服务器
  16. 会议摘要怎么写?这篇论文手把手教你
  17. SpringCloudAlibaba之Nacos
  18. 最新影牛视频双端影视视频APP网站源码+详细视频教程
  19. neo4j算法插件-GDS安装
  20. 当幸福来敲门 经典语录

热门文章

  1. linux同步数据库,Linux两台服务器mysql数据库同步
  2. python模拟抛硬币_python实现简单随机模拟——抛呀抛硬币
  3. leetcode:剑指offer----替换空格
  4. STM32----TIM6和TIM7
  5. 特征匹配 + 单应性查找对象
  6. 诺奖技术和高通量筛选双双找到新冠病毒的脉门
  7. 基因功能不确定?做一下单基因GSEA怎么样?
  8. CIRCOS增加热图、点图、线图和区块属性
  9. 为啥我的Python这么慢 (一)
  10. 基础省选+NOI 第9部分 网络流