#linux下的c编程

##首先我们需要在linux中安装vim,用来编写代码,为我们的编程做准备
通过vim hello.c
进入到编辑界面
在这里插入图片描述
然后按esc退出编辑,用: wq保存并退出
一个c/c++文件要经过预处理、编译、汇编和链接才能变成可执行文件。
(1)预处理C/C++源文件中,以#开头的命令被称为预处理命令,如"#include"、宏定义命令"#define"、条件编译命令"#if、#ifdef"等。预处理是将包含(include)的文件插入原文件中、将宏定义展开、根据条件编译命令选择要使用的代码,最后将这些东西输出到一个.i文件中并等待进一步处理。(2)编译编译就是把C/C++代码(比如上述的.i文件)翻译成汇编代码。(3)汇编汇编就是将第二步输出的汇编代码翻译成符合一定格式的机器代码,在Linux系统上一般表现为ELF目标文件(OBJ文件)。反汇编是指将机器代码转换为汇编代码,这在调试程序时常常用到。(4)链接链接就是将上步生成的OBJ文件和系统库的OBJ文件、库文件链接起来,最终生成可以在特定平台运行的可执行文件。
在这里插入图片描述
GCC 编译工具链(toolchain)是指以 GCC 编译器为核心的一整套工具,用于把源代码转化成可执行应用程序。
它主要包含以下三部分内容:
• gcc-core:即 GCC 编译器,用于完成预处理和编译过程,例如把 C 代码转换成汇编代码。• Binutils :除 GCC 编译器外的一系列小工具包括了链接器 ld,汇编器 as、目标文件格式查看器 readelf 等。• glibc:包含了主要的 C 语言标准函数库, C 语言中常常使用的打印函数 printf、 malloc 函数就在 glibc 库中。linux系统默认安装了GCC 编译工具链,windows系统可以通过安装,使用GCC工具。
我们通过gc c来完成相应的步骤
在这里插入图片描述

预处理:gcc –E hello.c –o hello.i;gcc –E调用cpp
编 译:gcc –S hello.i –o hello.s;gcc –S调用ccl
汇 编:gcc –c hello.s –o hello.o;gcc -c 调用as
链 接:gcc hello.o –o hello ;gcc -o 调用ld
之后就会生成相应的文件

在这里插入图片描述
下面说一下makefile
makefie最基本的语法是规则,规则:
目标 : 依赖1 依赖2 …[TAB]命令当“依赖”比“目标”新,执行它们下面的命令。我们把上面三个命令写成makefile规则,如下:test :a.o b.o //test是目标,它依赖于a.o b.o文件,一旦a.o或者b.o比test新的时候,需要执行下面的命令,重新生成test可执行程序。
gcc -o test a.o b.o1
a.o : a.c //a.o依赖于a.c,当a.c更加新的话,执行下面的命令来生成a.o
gcc -c -o a.o a.c1
b.o : b.c //b.o依赖于b.c,当b.c更加新的话,执行下面的命令来生成b.o
gcc -c -o b.o b.c
下面是事例
在sum文件夹中创建makefile文件 $ touch makefile 编辑makefile文件 $ vim makefile 进入vim编辑makefile界面,将gcc过程输入并保存退出
最终运行makefile文件 $ make ,最终结果如下
在这里插入图片描述

还有就是gbd的调试
可以通过(gbd) list进行显示代码的内容,包括各行代码所在的行号
通过gbd break来设置某一行的断点。
用gbd print 来打印指定变量的值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值