Linux下预处理,编译,汇编,链接过程及gdb的使用

本文详细介绍了Linux环境下C程序从预处理、编译、汇编到链接的过程,以及如何使用gdb进行调试。通过实例展示了每个阶段的操作和生成的文件格式,包括-E选项进行预处理,-S选项生成汇编代码,汇编生成.o文件,链接形成可执行程序,并通过gdb进行断点设置、程序执行等调试步骤。
摘要由CSDN通过智能技术生成

在linux下,vim hello.c以后打开我们的命令模式,按i我们进入插入模式,然后编辑以下文本,编辑好以后按shift + ;,进入底行模式,输入wq保存退出(只输入q是退出并不保存)

#include<stdio.h>
#define MAOMAO "maomao\n"
//zhuhshi
/*zhushi*/
int main()
{
#pragma warning("normal err")
#if 0
        printf("hello\n");
#else
        printf(maomao);

#endif
}

一,预处理(进行宏替换)

[root@localhost a]# gcc hello.c -E -o hello.i
[root@localhost a]# vim test.i

-E 选项的作用是让gcc在预处理结束后停止编译过程。
-o 是指目标文件,“i”文件为已经预处理的c原始程序
预处理阶段的功能:
1)将所有的#define删除,并展开所有的宏定义。
2)处理所有的预处理指令,比如#if,#elif,#else,#endif,#ifdef。
3)处理#include预编译指令,将被包含的文件插入到预处理指令的位置,这个过程是递归的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值