【linux】linux开发工具的使用

linux开发工具的使用

  • 一、linux软件管家-yum
    • 1.1 软件包的概念
    • 1.2 yum的使用
      • 1.2.1 查看安装包
      • 1.2.2 安装软件
      • 1.2.3 卸载软件
    • 2.1 插入模式下的命令
    • 2.2 命令模式下的命令
    • 2.3 底行模式的命令
    • 2.4 vim的配置
  • 三、linux下的编译器-gcc/g++
    • 3.1 预处理
    • 3.2 编译
    • 3.3 汇编
    • 3.4 链接
    • 3.4 函数库
    • 3.5 g++
  • 四、linux调试器-gdb
  • 五、linux下项目自动化构建工具-make/Makefile
    • 5.1 Makefile的细节
    • 5.2 Makefile中的特殊符

一、linux软件管家-yum

1.1 软件包的概念

软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系
在window下我们下载软件的时候可以使用软件市场下载软件,那么在linux中下载软件呢br> 答案是yum
linux软件下载有三种方式:

1?? 源码安装:将软件源代码进行编译
2?? rpm安装:利用linux内置的安装包安装:类型安卓的apk文件
3?? yum安装: 自己考虑依赖关系,不需要人处理

第一和第二中安装方式安装需要大量的其它依赖文件,而yum就像一个软件管家。

1.2 yum的使用

1.2.1 查看安装包

指令:
功能:把linux可以安装的软件全部以list的方式列出来

1.2.2 安装软件

指令:
输入后看看效果:

批量注释:

1??
2?? 用「h」、「j」、「k」、「l」选择要注释部分

批量取消注释:

1??
2?? 用「h」、「j」、「k」、「l」选择要取消注释部分
3?? 按「d」

文本操作:

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

「shift + ~」:大写变小写,小写变大写,按住就一直往后替换直到行尾

2.3 底行模式的命令

「set nu」: 在文件中的每一行前面列出行 。
「set nonu」:关闭行

「vs + 文件名」:多文件操作
「ctrl + ww」: 让光标跳转

3.3 汇编

汇编过程,生成机器代码(乱码),生成可重定向目标文件,不能直接执行

gcc -c test.s -o test.o

3.4 函数库

在linux中有两种库:

动态库:(windows是)
静态库:(windows是)

而链接的过程就是把自己写的c程序和第三方库关联起来。
那么静态链接和动态链接有什么区别呢/p>

静态库是把库文件代码全部导入到我们要编译的程序中
动态库并没有这样做,而是在程序执行时再进行库链接

静态库占用内存很大,动态库占用内存小,可以节省系统开销

下载C静态库:

sudo yum install -y glibc-static

下载C++静态库:

sudo yum install -y libstdc+±static

3.5 g++

首先要知道g++也能编译c语言

创建c++文件:

touch test.cpp

编译c++:

g++ test.cpp -o cpp

或者

常用命令:

list/l 行 :接着上次的位置往下列,每次默认列10行

b(breakpoint): 设置断点
disable: 禁用断点
enable: 启用断点
d(delete) x :删除序 为x的断点,(不带x会删除所有断点)
r(run): 运行程序(到断点处)
n(next): 单条执行(window中的F10)
s(step): 单条(会进入函数)(window中的F11)
bt 查看调用堆栈
info b: 查看断点情况

display: 跟踪查看一个变量
undisplay: 取消跟踪

当我们确定这个函数没有问题的时候,我们可以直接跳出函数:

finish: 执行到当前函数返回(跳过函数)

5.2 Makefile中的特殊符

【linux】linux开发工具的使用

$@ 表示依赖关系中的目标文件(冒 左边)
$^ 表示文件列表(冒 右边)

符 会自己替换,跟上面展示的一样。



纸上得来终觉浅,绝知此事要躬行。

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24810 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月26日
下一篇 2022年9月26日

相关推荐