Linux基础开发

目录

⚔软件管理包

🗡安装卸载软件包

⚔Linux开发工具

🗡vim的介绍使用

   🗡正常模式命令集

⚔gcc g++使用

🗡预处理

🗡编译

🗡汇编(转为二进制)

🗡链接

⚔Linux调试工具gdb

⚔Linux项目自动化构建工具

🗡工作原理


⚔软件管理包

  •   在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
  •   但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
  •   软件包和软件包管理器, 就好比 "App" "应用商店" 这样的关系.
  •   yum(Yellow dog Updater, Modifified)Linux下非常常用的一种包管理器. 主要应用在Fedora,RedHat,Centos等发行版上

软件包的查看~

    yum list | grep lrzsz  指定查找软件包~

Notice: 

  •     软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
  •     "x86_64" 后缀表示64位系统的安装包, "i686" 后缀表示32位系统安装包. 选择包时要和系统匹配.
  •     "el7" 表示操作系统发行版的版本. "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6.
  •     最后一列, base 表示的是 "软件源" 的名称, 类似于 "小米应用商店", "华为应用商店" 这样的概念

🗡安装卸载软件包

    安装一个小牛会说话~

    yum install cowsay  就可以~

   卸载:

    yum remove cowsay 

⚔Linux开发工具

🗡vim的介绍使用

    vim 主要有三种模式~

  1. 命令模式(command mode)
  2. 插入模式(Insert mode)
  3. 底行模式(last line mode)

   🗡正常模式命令集

    按「 $ 」:移动到光标所在行的行尾

    shift+$移动到行尾。+^移动到行首~

    w光标跳到下个字母开头~e跳到下个字母末尾~

    b光标回到上个字母开头~

    dd删除目标行~

    yw将光标所在处到字符尾复制到缓冲区~

    yy复制当前行~~p粘贴当前行~

    u撤销上一次操作~

    ctrl + r 撤销的恢复~

⚔gcc g++使用

    我们之前所了解到的~我们在写完代码到运行出结果总共经历4个阶段~

1. 预处理(进行宏替换 )
2. 编译(生成汇编 )
3. 汇编(生成机器可识别代码)
4. 连接(生成可执行文件或库文件 )

🗡预处理

预处理功能主要包括宏定义 , 文件包含 , 条件编译 , 去注释等。
预处理指令是以 # 号开头的代码行。
实例 : gcc –E hello.c –o hello.i
选项 “-E”, 该选项的作用是让 gcc 在预处理结束后停止编译过程。
选项 “-o” 是指目标文件 ,“.i” 文件为已经过预处理的 C 原始程序~

🗡编译

在这个阶段中 ,gcc 首先要检查代码的规范性、是否有语法错误等 , 以确定代码的实际要做的工作 , 在检查无误后,gcc 把代码翻译成汇编语言。
用户可以使用 “-S” 选项来进行查看 , 该选项只进行编译而不进行汇编 , 生成汇编代码。
实例 : gcc –S hello.i –o hello.s

🗡汇编(转为二进制)

汇编阶段是把编译阶段生成的 “.s” 文件转成目标文件
读者在此可使用选项 “-c” 就可看到汇编代码已转化为 “.o” 的二进制目标代码了
实例 : gcc –c hello.s –o hello.o

🗡链接

在成功编译之后 , 就进入了链接阶段。
实例 : gcc hello.o –o hello

⚔Linux调试工具gdb

程序的发布方式有两种, debug 模式和 release 模式
Linux gcc/g++ 出来的二进制程序,默认是 release 模式
要使用 gdb 调试,必须在源代码生成二进制程序的时候 , 加上 - g 选项~
list 列出行号,接着上次位置往下列~,每次列10行
list函数名,列出函数名的源代码~
r 运行程序~
n 单条执行~
s 进入函数调用~
break  行号  在某一行设置断点~
break 函数名 某个函数开头设置断点~
info b 查看断点信息~
finish 执行完函数~停下来等命令~
p 变量 打印变量值~
set var  修改变量值~
continue 从当前程序连续执行程序~
d b 删除所有断点~
disable 禁用断点~
enable  启用断点~
quit  退出gdb

⚔Linux项目自动化构建工具

    make命令需要在文件对写好依赖方法的文件搭配使用就可以直接--自动化编译--~

🗡工作原理

     

  •     make会在当前目录下找名字叫“Makefifile”“makefifile”的文件。
  •     如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“hello”这个文件,并把这个文件作为最终的目标文件。
  •     如果hello文件不存在,或是hello所依赖的后面的hello.o文件的文件修改时间要比hello这个文件新(可以用 touch 测试),那么,他就会执行后面所定义的命令来生成hello这个文件。
  •     如果hello所依赖的hello.o文件不存在,那么make会在当前文件中找目标为hello.o文件的依赖性,如果找到则再根据那一个规则生成hello.o文件。(这有点像一个堆栈的过程)
  •     当然,你的C文件和H文件是存在的啦,于是make会生成 hello.o 文件,然后再用 hello.o 文件声明make的终极任务,也就是执行文件hello了。
  •     这就是整个make的依赖性,make会一层又一层地去找文件的依赖关系,直到最终编译出第一个目标文件。
  •     在找寻的过程中,如果出现错误,比如最后被依赖的文件找不到,那么make就会直接退出,并报错,而对于所定义的命令的错误,或是编译不成功,make根本不理。
  •     make只管文件的依赖性,即,如果在我找了依赖关系之后,冒号后面的文件还是不在,那么对make就不会执行了~

fflush(stdout);是直接将信息打印到屏幕上~

  

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值