Linux 下的C编程调试

本文详细介绍了在Linux环境下使用vim编辑、预处理、编译、链接C程序的过程,以及通过makefile简化管理。同时,文章讲解了如何使用gdb进行调试,包括设置断点、单步执行、查看变量和源码等,是学习Linux C编程调试的重要参考资料。
摘要由CSDN通过智能技术生成

Linux下的C编程调试
1.vim编辑源代码文件
1.1创建并编辑main函数
vi main.c

#include "mytool1.h"
int main(int argc,char **argv)
{
mytool1_print("hello");
}

1.2创建并编辑mytool1.h
vi mytool1.h

#ifndef _MYTOOL_1_H
#define _MYTOOL_1_H
void mytool1_print(char *print_str);
#endif

1.3创建并编辑mytool1.c
#include "mytool1.h"
void mytool1_print(char *print_str)
{
printf("This is mytool1 print %s ",print_str);
}

2.分别查看用下面指令编译的结果
2.1 -E选项,预处理C源文件
gcc -E main.c -o main.i

-E意思就是prEprocess。输出不是送到一个文件而是标准输出。
watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBzbWlsZV4,size_20,color_FFFFFF,t_70,g_se,x_16

 

2.2 -S选项,产生汇编源文件
gcc -S main.i -o main.s

-S意思就是aSsemble,产生一个叫main.s的汇编源文件

2.3 -c选项,只编译,不汇编连接
gcc -C main.s -o main.o

-c意思就是Compile,产生一个叫main.o的目标文件

2.4 -o选项,指定输出文件名
gcc    main.s -o main

-o意思是Output即需要指定输出的可执行文件的名称。这里的名称为main。

3.gcc过程改为makefile管理
当然由于这个程序很短,我们可以这样来编译:

gcc -c main.c
gcc -c mytool1.c
gcc -o main main.o mytool1.o

这样的话我们也可以产生main程序,而且也不是很麻烦。但是如果我们考虑一下如果有一天我们修改了其中的一个文件(比如说mytool1.c)那么我们难道还要重新输入上面的命令?也许你会说,这个很容易解决啊,我写一个 SHELL脚本,让它帮我去完成不就可以了。是的对于这个程序来说,是可以起到作用的。但是当我们把事情想的更复杂一点,如果我们的程序有几百个源程序的时候,难道也要编译器重新一个一个的去编译?

为此,聪明的程序员们想出了一个很好的工具来做这件事情,这就是make。我们只要执行以下make,就可以把上面的问题解决掉。在我们执行make之前,我们要先编写一个非常重要的文件。–Makefile。对于上面的那

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值