栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux开发工具

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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! -----> 强制退出不保存

 普通模式下的常见操作指令:

   光标的移动:h j k l:↑ ↓ ← →   Ctrl + f/b(上下翻页)   gg/G(首行/尾行) w/b (按单词移动)    内容的操作:yy/3yy:复制    p/np:粘贴     dd/ndd:剪切(只有剪切,没有真正的删除)                           u:撤销上次操作      Ctrl+r:还原上次操作    gg/G :自动对齐

 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虽然只生成第一个目标对象,但是如果他的依赖对象不存在,他也会向下递归寻找依赖对象的生成规则,先将依赖对象生成,再去生成目标对象;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/828321.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号