Linux开发工具

 Linux 软件包管理器 yum:

安装文件:sudo yum install lrzsz
删除文件:sudo yum remove lrzsz
查看软件包:yum list(yum search) | grep lrzsz

lrzsz--->文件传输工具:

rz :将主机文件传送到服务器上
sz:将服务器的文件传送到主机上

vim--->编辑器(Linux下写代码的工具)

vim操作模式有12种, 必用的有 三种:普通模式,插入模式,底行模式
普通模式:进行一些命令操作; 插入模式:编辑文件内容; 底行模式:保存以及退出编辑

普通模式切换插入模式的过程: 

1:vim filename 打开文件,文件不存在不要紧,默认会创建不存在的文件
2.打开一个文件后,默认处于 普通模式下,可以使用 i a o / I A O 切换到插入模式
     i:从光标位置开始插入;   a:光标向后移动一个字符开始插入;   o:在光标所在行下方新建一行开始插入
3.编辑完毕后,使用 esc回到普通模式
4.输入英文冒号,切换低行模式 
:w保存
:q退出编辑
:wq保存并退出
:q!强制退出不保存

 gcc/g++编译器:(注意:不同的编译器不同的语言不能串着使用)

编译器如何将高级语言解释成为机器指令:

  1. 预处理:进行宏替换,去掉注释,引入头文件;(gcc -E main.c -o main.i)
  2. 编译:进行语言语义纠错,没有错误则将高级语言代码解释为汇编指令;(gcc -S main.i -o main.s)
  3. 汇编:将汇编指令解释为二进制机器指令;(gcc -c main.s -o main.o)
  4. 链接:将我们的机器指令与所适用的库函数对应库文件中的机器指令打包到一起组织成为可执行程序;(gcc main.o -o main)

 链接其实就是把所有代码合到一起,尤其是要把库文件中的代码拿过来,但实际上有区别:

静态库:链接静态库,将静态库中用到的函数指令直接写入程序中,生成的程序比较大,在内存中可能存在一些函数指令冗余,但是运行时不需要依赖库的存在;
动态库:链接动态库,将动态库中的函数符号表记录到程序中,运行程序时连带依赖的动态库一起加载到内存中,可以与其他程序在内存中共用动态库;
而gcc编译器默认的连接方式是---动态链接

gcc常见的编译选项:  

-E  只激活预处理
-S  编译到汇编语言不进行汇编和链接
-c   进行到汇编完毕就结束
-o  指定要生成的文件对象文件

gdb:调试工具,调试程序的运行过程

调试程序前提:一个程序是可被调试的(代码无优化,加入调试符号信息)debug版本程序
1.加载调试程序:gdb ./main
2.开始调试:run 直接运行;  start 开始逐步调试
3.逐步调试涉及的指令:
n--->next:下一步;(逐过程)     step :下一步;(逐语句) 
until file:line:直接运行到指定文件的指定行             list file:line :查看文件指定行的代码
continue:从当前调试位置开始继续运行                  backtrace:查看函数调用栈,快速定位程序崩溃位置
break:打断点;break main.c:12 给12行打断点,运行到12行会停下来;
info break:查看断点信息                                         print:打印变量内容,还可以修改变量数据;
                                       

make/makefile : 项目自动化构建具

makefile :文本文件,记录一个项目的构建规则( 显式规则、隐晦规则、变量定义、文件指示和注释),保存了编译器和连接器的参数选择;
make:是一个makefile的解释程序找到当前目录下的makefile进行逐行解释,执行指令完成项目的构建

makefile的编写规则:

#是注释       
预定义变量
$^表示所有依赖对象
$@表示目标对象
$<所有依赖对象中的第一个
目标对象:依赖对象;    [tab]要执行的命令
伪对象:表示当前的目标对象,并不是一个需要生成的实体目标对象,根本目的是为了解除目标对象与实体的关系;
               常用于项目清理的clean对象;
               使用.PHONY来声明伪对象

 make:makefile解释器,用于解释makefile中的项目构建规则,完成项目的构建

  1. make会根据目标对象和依赖对象的最后一次修改时间来进行判断,判断目标对象是否需要重新生成;
  2. make后边跟上目标对象的名称,表示在makefile中寻找对应的目标对象生成规则,生成指定目标对象;
  3. make找到makefile中的第一个目标对象,和其生成规则,进行指令执行,生成之后,则退出,意味着makefile中就算有多个目标 对象,他也只生成一个;
  4. make虽然只生成第一个目标对象,但是如果他的依赖对象不存在,他也会向下递归寻找依赖对象的生成规则,先将依赖对象生成,再去生成目标对象;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux开发工具是用于在Linux操作系统上进行软件开发的工具集合。其中包括编译器、调试器、集成开发环境(IDE)、版本控制工具等。常见的Linux开发工具有GCC、GDB、Eclipse、Git等。使用这些工具可以方便地进行代码编写、调试、测试和版本控制等工作,提高开发效率和代码质量。同时,Linux开发工具也支持多种编程语言,如C、C++、Java、Python等,满足不同开发需求。 ### 回答2: Linux开发工具是指针对Linux操作系统开发的一系列软件工具和环境,包括编程语言、集成开发环境、调试工具等,旨在帮助开发者更高效地进行软件开发。 首先,Linux开发工具提供了丰富的编程语言选择,如C、C++、Python等。这些语言具有良好的跨平台性能,可在Linux系统上进行开发,并且有着强大的功能和灵活性,能够满足不同开发需求。 其次,Linux开发工具提供了各种集成开发环境(IDE),如Eclipse、NetBeans等。这些IDE提供了代码编辑、编译、调试等功能,并且支持版本管理系统,如Git,可以方便地进行团队协作开发。此外,IDE还提供了丰富的插件和扩展,以及智能代码补全、语法高亮等功能,提升了开发效率和舒适度。 此外,Linux开发工具还包括了一些非常强大的调试工具,如GDB、Valgrind等。这些工具能够帮助开发者快速定位和解决程序中的错误和问题,并且提供了详细的运行时信息和内存调试功能,对于大型项目的开发和调试非常有帮助。 除此之外,Linux开发工具还包括了一些性能分析工具,如perf、gprof等。这些工具能够帮助开发者评估程序的性能,并提供详细的性能数据和分析报告,帮助优化程序的运行效率。 总而言之,Linux开发工具通过提供丰富的编程语言支持、集成开发环境、调试工具和性能分析工具等,可以帮助开发者更加高效地进行软件开发,提高开发效率和质量。对于Linux系统开发者来说,掌握这些工具的使用,对于提升自己的技术水平和开发能力非常重要。 ### 回答3: Linux开发工具是指在Linux操作系统上用于开发和调试软件的工具集合。这些工具可帮助开发者编写、编辑、构建、调试和测试软件,提高开发效率和软件质量。 首先,Linux开发工具包含了丰富的文本编辑器,如Vim和Emacs。这些编辑器具有强大的功能和高度可定制性,能够满足不同开发者的需求,如代码高亮、语法检查、自动完成等,有助于编写高质量的代码。 其次,Linux开发工具还包括编译器和调试器。常用的编译器有GCC和Clang,它们支持多种编程语言,如C、C++、Java等,能够将源代码转换为机器代码。调试器如GDB和LLDB能够帮助开发者在代码执行过程中进行调试,定位和修复bug。 另外,Linux开发工具还提供了版本控制系统,如Git和Subversion,可以帮助开发者管理代码版本,协作开发,追踪代码变更历史,并提供分支管理和合并功能,方便团队合作和代码维护。 此外,Linux开发工具还包括构建工具,如Make和CMake,能够自动化构建和编译过程,简化开发流程,提高开发效率。还有性能分析工具,如Valgrind和Gprof,可以帮助开发者分析代码性能瓶颈,优化程序性能。 总之,Linux开发工具提供了一套完整的开发环境,可以满足开发者在Linux平台上开发软件的各种需求。通过这些工具的使用,开发者可以更高效地编写、调试和测试代码,提高软件质量和开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值