目录

一、回顾静态库和共享库的制作和使用

二、makefile

1、makefile的基本规则

2、makefile的工作原理

(1)基本原则

(2)总结

3、makefile中的变量

(1)普通变量

(2)自带变量

(3)自动变量

(4)模式规则

4、makefile函数

5、makefile的清理操作

三、gdb调试

1、gdb介绍

2、生成调试信息

3、启动gdb

4、显示源代码

5、设置断点

(1)简单断点

(2)多文件设置断点——其他文件

(3)查询所有断点

(4)条件断点

(5)维护断点

6、调试代码

7、查看变量的值

四、文件IO

1、C库IO函数的工作流程

2、C库函数与系统函数的关系

3、虚拟地址空间

4、pcb和文件描述符表 ​编辑

5、open函数

6、close函数

7、read函数

8、write函数

9、lseek函数

10、perror和errno

11、阻塞和非阻塞


 回顾静态库和共享库的制作和使用

        熟练使用规则编写简单的makefile文件

        熟练使用makefile中的变量

        熟练使用makfile中的函数

        熟练掌握gdb相关调试命令的使用

        了解概念:pcb和文件描述符,虚拟地址空间

        熟练掌握linux系统IO函数的使用

一、回顾静态库和共享库的制作和使用

编写一个四则运算代码,分别利用静态库和共享库

具体详情步骤可以看上一篇文章

二、makefile

makefile文件是用来管理项目工程文件,通过执行make命令,make就会解析并执行makefile文件。

makefile的命名:makefile或者Makefile

1、makefile的基本规则

makefile由一组规则组成,规则如下:

目标: 依赖

(tab)命令


makefile基本规则三要素:

⭐目标:要生成的目标文件

⭐依赖:目标文件由那些文件生成

⭐命令:通过执行该命令由依赖文件生成目标


下面以具体的例子来讲解:

当前目录下由main.c fun1.c fun2.c sum.c,根据这个基本规则编写一个简单的makefile文件,生成可执行文件main

第一个版本的makefile:

然后执行make

缺点:效率低,修改一个文件,所有的文件会全部重新编译

2、makefile的工作原理

(1)基本原则

⚪  若想生成目标,检查规则中的所有的依赖文件是否都存在:

如果有的依赖不存在,则向下搜索规则,看是否有生成该依赖文件的规则:

如果有规则用来生成该依赖文件,则执行规则中的命令生成依赖文件;

如果没有规则用来是生成该依赖文件,则报错。

如果所有依赖都存在,检查规则中的目标是否需要更新,必须先检查它的所有依赖,依赖中有任何一个被更新,则目标必须更新.(检查的规则是那个时间大那个最新)

linux系统基础回顾(二)相关推荐

  1. Linux系统基础(二)

                Linux系统基础(二) 一.linux系统结构 1.linux系统结构是倒树型 2. /bin##二进制可执行文件也就是系统命令 /sbin##系统管理命令存放位置 /boo ...

  2. linux系统基础回顾(一)

    目录 一.简单命令操作 1.ls -l详解 2.mkdir回顾 3.cp回顾 4.给文件创建软链接 5.权限设置 6.find 二.vim简单回顾 1.命令模式下的操作 ①保存退出 ②代码格式化 ③光 ...

  3. linux中ftp的工作原理,Linux系统学习 十二、VSFTP服务—简介与原理

    1.简介与原理 互联网诞生之初就存在三大服务:WWW.FTP.邮件 FTP主要针对企业级,可以设置权限,对不同等级的资料针对不同权限人员显示. 但是像网盘这样的基本没有权限划分. 简介: FTP(Fi ...

  4. linux系统下io的过程,Linux系统基础知识:IO调度

    Linux系统基础知识:IO调度 IO调度发生在Linux内核的IO调度层.这个层次是针对Linux的整体IO层次体系来说的.从read()或者write()系统调用的角度来说,Linux整体IO体系 ...

  5. linux 系统优化基础,Linux系统基础优化总结

    请称呼我搬运工,哈哈 优化综合 https://www.cnblogs.com/yinshoucheng-golden/p/6149556.html (1)不用root管理,以普通用户的名义通过sud ...

  6. linux系统基础调优32条技巧

    linux系统基础调优32条技巧 版权声明:原创作品,如需转载,请与作者联系.否则将追究法律责任. 缘起:本文为老男孩linux系统基础优化部分,一些高级方面的调优欢迎大家一起讨论或单独交流,谢谢大家 ...

  7. Linux系统编程(二)孤儿进程和僵尸进程

    Linux系统编程(二) 一.exec函数族 1.exec函数 二.孤儿进程和僵尸进程 三.wait和waitpid 1.wait函数 2.waitpid函数 一.exec函数族 exec函数使用时, ...

  8. Linux系统基础知识

    Linux系统基础知识 1.在Linux系统中,以文件方式访问设备.   2. Linux内核引导时,从文件 /etc/fstab中读取要加载的文件系统. 3. Linux文件系统中每个文件用 ino ...

  9. Linux系统基础教程(2)

    Linux系统基础教程(1) 文章目录 8. 启用 wifi 1) 命令行设置 2) 窗口界面设置 9. 远程登陆 1) SSH 命令行 2) 远程桌面 10. 不接外显,启动桌面系统 11. 开启摄 ...

最新文章

  1. poco vs Boost
  2. 关于学习Python的一点学习总结(10->设置字符串格式)
  3. php-fpm 进程管理
  4. 蓝桥杯_算法训练_Torry的困惑(基本型)
  5. oracle_base,Oracle--基础知识--Oracle 数据库目录 ORACLE_BASE ORACLE_HOME
  6. 使用Spring Boot和Spring MVC自定义HttpMessageConverters
  7. 阿里技术解密:全链路压测体系建设方案的思考与实践
  8. 腾讯云linux vnc端口,用腾讯云手把手教你用VNC搭建Ubuntu可视化界面(一)
  9. 电子科技大学计算机课程表,电子科技大学课表.doc
  10. python脚本画pie饼图_小白学Python(11)——pyecharts,绘制饼图 Pie
  11. SCT2620MRER,替代TP54240,TPS54260,3.8V-60V Vin,2.5A,高效、频率可调、降压DCDC转换器
  12. 完全免费的Windows代码签名证书(大神勿喷)
  13. MCE | 打破 Western Blot 玄学操作
  14. Intent跳转地图应用(百度地图、高德地图)
  15. 乐刻运动年陈文化中的那六个成语解析:日拱一卒,功不唐捐|筚路蓝缕 玉汝于成|有梦可依,未来可期
  16. 计算机潮流分析22节点,第三章电力系统潮流分析与计算第七讲电力网络方程和矩阵及功率方程_255903070...
  17. 2015网龙产品策划暑期实习心得
  18. kail如何进入root_Kali初次使用如何获得root权限
  19. 【Python黑科技】几行代码绘制gif动图(保姆级图文+实现代码)
  20. python优点以及缺点

热门文章

  1. 读书百客:《念奴娇·赤壁怀古》赏析二
  2. java基础加强视频zxx(1-32)
  3. 三菱plc232数据线驱动下载_2020山东三菱PLCFX3GA40MT回收回收量大收购诚信回收
  4. LAMP搭建Discuz论坛(腾讯云环境)
  5. 没有寻线仪怎么找网线_最常用的网络应用工具之寻线仪
  6. 如何通过无人机航空摄影获取测绘成果?
  7. GOOGLE图书搜索
  8. JS循环做简易ATM机
  9. 膜拜!华为大牛透彻讲解Java面试题100道必考题
  10. java完整的利用itext5制作pdf、二维码图片插入pdf,并解析pdf中的二维码信息