Linux开发工具实现C/C++编程

文章目录

  • Linux开发工具实现C/C++编程
    • 1.软件包管理器:yum
      • 如何安装软件
      • 如何卸载软件
    • 2.编辑器:vim
      • 1.常见的三种模式:
      • 2.正常模式下的快捷操作
      • 3.简单vim配置
      • 4.其他
    • 3.编译器:gcc/g++
    • 4.调试器:gdb
        • 1.两种模式:
      • 2.进入gdb调试的基础方法
    • 5.自动化构建项目:make/Makefile
      • 1.介绍:
      • 2.makefile的文件格式
      • 3.makefile的工作原理
      • 4.makefile文件当中的自定义变量和内置变量

1.软件包管理器:yum

如何安装软件

通过yum完成gcc的安装:sudo yum install lrzsz
然后敲“y”确认安装,出现"complete",则安装成功

如何卸载软件

命令:sudo yum remove lrzsz

2.编辑器:vim

1.常见的三种模式:
  • 正常模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到last line mode
  • 插入模式:只有在Insert mode下,才可以做文字输入,按[i]进入插入模式,按「ESC」键可回到正常模式。
  • 底行模式:文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,shift+:即可进入该模式
  • 按[q]退出,[w]保存,[wq]退出并保存,[wq!]强制退出并保存
2.正常模式下的快捷操作

移动光标:

  • vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
  • 按「G」:移动到文章的最后
  • 按「 $ 」:移动到光标所在行的“行尾”
  • 按「^」:移动到光标所在行的“行首”
  • 按「w」:光标跳到下个字的开头
  • 按「e」:光标跳到下个字的字尾
  • 按「b」:光标回到上个字的开头
  • 按「#l」:光标移到该行的第#个位置
  • 如:5l,56l
  • 按[gg]:进入到文本开始
  • 按[shift+g]:进入文本末端
  • 按「ctrl」+「b」:屏幕往“后”移动一页
  • 按「ctrl」+「f」:屏幕往“前”移动一
  • 按「ctrl」+「u」:屏幕往“后”移动半页
  • 按「ctrl」+「d」:屏幕往“前”移动半页

删除文字:

  • 「x」:每按一次,删除光标所在位置的一个字符
  • 「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
  • 「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
  • 「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
  • 「dd」:删除光标所在行
  • 「#dd」:从光标所在行开始删除#行

复制

  • 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
  • 「#yw」:复制#个字到缓冲区
  • 「yy」:复制光标所在行到缓冲区
    -「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
  • 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

替换

  • 「r」:替换光标所在处的字符。
  • 「R」:替换光标所到之处的字符,直到按下「ESC」键为止
    撤销上一次操作
  • 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复
  • 「ctrl + r」: 撤销的恢复

更改

  • 「cw」:更改光标所在处的字到字尾处
  • 「c#w」:例如,「c3w」表示更改3个字
    跳至指定的行
  • 「ctrl」+「g」列出光标所在行的行号
  • 「#G」:例如,「15G」,表示移动光标至文章的第15行行首。
3.简单vim配置
  • 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。命令:vim /etc/vimrc
  • 设置语法高亮: syntax on,显示行号: set nu,设置缩进的空格数为4: set shiftwidth=4
  • 按[i]输入:
  • 按[esc]退出编辑模式后按[shift+:]再按[wq]保存并退出
  • 测试效果:
  • 一个超好用的插件:vimforcpp,直接输入命令安装:curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
4.其他
  • 多行注释:
    1.ctrl +v
    2.选中需要注释的行,使用hjkl移动光标
    3.shift + i :进入插入模式
    4.输入注释符号
    5.esc
  • 多行去注释:
    1.ctrl+v
    2.选中需要去注释的行当中的注释字符,使用hjkl移动光标
    3.x删除掉

3.编译器:gcc/g++

1.gcc编译C,g++编译C++
2.编译的4个过程:预处理,编译,汇编,链接

  • 预处理:宏替换,头文件展开,删除注释,条件编译
    命令:gcc -E test.c -o test.i(选项“一E”,该选项的作用是让 gcc在预处理结束后停止编译过程;选项“-o”是指目标文件;“.i”文件为已经过预处理的C原始程序)
  • 编译:将源文件生成为汇编代码
    命令:gcc -s test.c/test. i -o test.s
  • 汇编:将汇编代码转化成为二进制代码
    命令:gcc -c test.c/test.i/test.s -o test.o
  • 链接:将若干个二进制代码(.o)或者库文件链接起来生成可执行程序或者库文件
    命令:gcc test.c -o mytest(mytest:就是可执行程序的名字)

4.调试器:gdb

1.两种模式:

debug模式和release模式
因为Linux gcc/g++出来的二进制程序默认为release模式,所以要使用gdb调试时,要给后面加上-g,即:

2.进入gdb调试的基础方法
  • l:查看源码
  • l [func name]:查看某个函数的源码
  • r:执行程序
    > - n:逐过程执行(不会进入到被调用函数的内部)
  • s:逐语句执行(会跳转到函数的内部进行执行)
  • b [源代码中行号]:打断点
    > - i b:查看断点
    > - c:继续执行
  • delete breakpoints:删除所有断点 > delete breakpoints n:删除序号为n的断点
    disable breakpoints:禁用断点
    enable breakpoints:启用断点
  • info(i) locals:查看当前栈帧局部变量的值
  • quit:退出gdb

5.自动化构建项目:make/Makefile

1.介绍:

make:是一个命令
makefile:是一个文件
过程:make会根据makefile的内容进行解析,编译程序,从而生成可执行程序

2.makefile的文件格式

目标对象:依赖对象
编译命令
如:

3.makefile的工作原理
  • make会在当前目录下找名字叫“Makefile”或“makefile”的文件来进行解析,如果找不到则报错
  • 如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“hello”这个文件,并把这个文件作为最终的目标文件
  • 如果生成了目标对象,则后续文件当中的内容不解析,如果为了生成第一个目标对象,需要先生成依赖对象,则在makefile文件当中查找生成依赖对象的方法,如果发现依赖的对象不存在,则报错返回
  • 若依赖对象的最后一次修改时间小于目标对象的最后一次修改时间,则不生成
4.makefile文件当中的自定义变量和内置变量

内置变量:

  • 内置变量
    $^:所有依赖对象
    $@:目标对象
    $<:代表第一个依赖对象> - 自定义变量: $()解引用

Linux开发工具实现C/C++编程相关推荐

  1. Linux开发工具的使用

    1.   Linux开发工具的使用 Vim编译的使用 Gdb调试工具的使用 Makefile的编写 linux跟踪调试 SSH的使用 subversion的使用 1.   Linux开发工具的使用 V ...

  2. 【嵌入式】Linux开发工具make及makefile设计

    make工具及makefile设计 make工具及makefile设计 Makefile 设计示例 Makefile 规则--构成 Makefile 变量(宏) Makefile 条件判断 Makef ...

  3. 【嵌入式】Linux开发工具arm-linux-gcc安装及使用

    arm-linux-gcc 知识架构及层次 - 程序编译及调试 嵌入式交叉编译器安装配置 主机目标板开发模式 ARM微处理器/Linux系统下编译器 编译器下载及安装 arm-linux-gcc工具使 ...

  4. 嵌入式 Linux 开发工具篇问题整理//C语言测试(杨辉三角、递归调用实现阶乘、计算器、统计字符串出现次数)//2018.07.12.//

    嵌入式 Linux 开发工具篇问题整理 1. 嵌入式开发与传统开发的区别?(同类问题:单片机开发与嵌入式开发的区别)             是否有无操作系统:     2. 移植操作系统的好处有哪些 ...

  5. <Linux开发>linux开发工具- 之-TFTP

    <Linux开发>linux开发工具- 之-TFTP tftp命令的作用和nfs命令一样,都是用于通过网络下载东西到DRAM中,只是tftp命令使用的TFTP协议,Ubuntu主机作为TF ...

  6. Linux开发工具详解

    目录 前言 一.Linux编辑器-vim使用 1.vim的基本概念 2.vim命令模式命令集 3.vim底行模式命令集 4.简单的vim配置 二.Linux编译器-gcc/g++使用 1.背景知识 2 ...

  7. <Linux开发>linux开发工具- 之-geany编辑器

    <Linux开发>linux开发工具- 之-geany编辑器 安装命令: sudo apt-get install geany 使用方法: 命令: geany 文件路径名 &

  8. <Linux开发>linux开发工具- 之-samba共享文件夹

    <Linux开发>linux开发工具- 之-samba共享文件夹 本文章主要讲解ubuntu下的文件 能够 在windows下访问的实现.目的是方便文件在Windows下操作,便于开发. ...

  9. <Linux开发>linux开发工具- 之-开发使用linux命令记录

    <Linux开发>linux开发工具- 之-开发使用linux命令记录 本文章主要记录开发过程中涉及使用的linux命令. 1.查看磁盘大小分区情况 命令: df -hl` 可查看分区的路 ...

最新文章

  1. 汇编语言学习-寄存器(CPU工作原理)
  2. mocha 测试 mysql_mocha 的基本用法 istanbul 生成测试覆盖率报告 mockjs 模拟网络请求...
  3. C++ 使用静态变量和静态方法统计学生分数和学生个数
  4. java中的重写与重载_java中的重写与重载
  5. ITK:图像重新取样
  6. 《机器学习》 —— 第一章:绪论 学习笔记
  7. Win Form登录机制的实现
  8. 究竟如何保证session一致性?
  9. atitit.按钮光标滑过高亮切换以及其他动态效果的实现css html js --attilax总结
  10. 例2.10 查找学生信息 - 九度教程第18题(查找)
  11. 《计算机视觉黑魔法16个实战项目》之扫描全能王
  12. macOS SwiftUI 进度指示器组件规范之 01 进度指标是什么 Progress Indicators
  13. 沈阳市委书记邀请深兰科技赴沈建厂,助力东北振兴
  14. Ubuntu Server 18.04 WiFi配置静态ip
  15. 中央大学计算机学什么,中央大学
  16. postgis对矢量进行切片(更新中)
  17. 手机上能学计算机一级b,全国计算机等级考试一级B的学习方法
  18. oracle表数据恢复为1小时之前,恢复一个小时前数据
  19. Word2vec之CBOW 模型
  20. RFID第二版答案-第三章

热门文章

  1. 四人过桥、三盏灯 三个开关 的答案
  2. iMindMap中如何插入语音
  3. android基础题型
  4. 论 fmap、fmap fmap、与 fmap fmap fmap
  5. 基于matlab的跳频系统的仿真,基于MATLAB的跳频通信系统仿真
  6. Fedora下常用软件的安装
  7. oracle虚拟机回收站在那里,Oracle中的回收站(Recycle Bin)
  8. EasyExcel3.0.5 加快大数据查询速度,查询性能优化
  9. [Struts]学习日记2 - 增加一些验证
  10. 硬盘安装Win7与ubuntu11.10双系统、非wubi安装