Linux关键技术 - 编译原理:VI编辑、GCC 编译过程、预处理、应用举例、GDB、Makefile

VI三种模式的切换

命令模式、文本输入模式、和末行模式

GCC编译过程

整个过程中可以划分为以下的4步流程:
(1)预处理/预编译: 主要对.c预处理,包含头文件的扩展,以及执行宏替换等,得到预处理文件 .i
(2)编译:主要用于将预处理文件高级语言程序翻译成汇编语言,得到汇编文件.s
(3)汇编:主要用于将汇编语言翻译成机器指令,得到二进制目标文件.o
(4)链接:主要用于将目标文件和标准库链接,得到可执行文件

预处理

Include<> ” ”
#define #if…#elif #ifdef…#endif #ifndef
error #warning
#pragma带参数的预定义处理 #pragma pack(push) #pragme pack(1) #pragma pack(pop)

#define SENCONDS_PER_YEAR 606024*365UL
#define PI 3.1415926F
对于#include <filename.h> ,编译器从标准库路径开始搜索 filename.h
对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h

应用举例

(1)编译
gcc a.c
编译成功后,当前目录下就产生了一个a.out文件。
也可用-o选项来为即将产生的可执行文件指定一个文件名来代替a.out。例如:
gcc –o greet a.c
此时得到的可执行文件就不再是a.out,而是greet。
3.调试文件
上边编译出错
gdb greet ,出现提示符
(gdb)
此时可在提示符下输入gdb的命令了,如:
(gdb) run
(gdb) list
(4)退出调试状态,返回系统提示符下,(gdb)quit
2.执行文件
格式: /可执行文件名
例: ./a.out
./greet

GDB

• 监视程序中变量的值;
• 设置断点以使程序在指定的代码行上停止执行;
• 一行行的执行代码。

Makefile

在实际的项目中,由于 make规则的复杂性和不确定性,自己编写Makefile是一件费时费力的事情。Makefile本身具有一定的相似性,因此利用GNU autoconf及automake这两套工具可以协助我们自动产生 Makefile文件,并且让开发出来的软件可以像大多数源 代码包那样,只需运行命令"./configure"、 “make”、 "make install"就可以把程序安装到系 统中,对于各种源代码包的分发和兼容性具有很好的效果。

链接

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值