迅为龙芯2K1000开发板Linux下gcc编译

本文详细介绍了GCC(GNU Compiler Collection)的编译过程,包括预处理、编译、汇编和链接四个阶段,并通过实例展示了在Ubuntu系统中使用GCC命令进行编译操作。同时,展示了每个阶段生成的不同类型文件,如.i、.s和.o文件。通过对helloworld.c程序的编译,读者可以理解GCC如何将源代码转化为可执行程序。
摘要由CSDN通过智能技术生成

gcc 全称(gnu compiler collection)即编译套件,gcc 可以支持多种计算机体系结构,比如 X86、ARM 、MIPI .在 12.2 章节中我们在 ubuntu 系统下安装了 gcc 编译器,所以可以直接输入以下命令 gcc -v 来查看 gcc的版本,如下图所示: 

 1 gcc 编译格式

比如我们在 12.2 章节中,使用命令 gcc helloworld.c -o helloworld 将 c 程序编译成可执行程序使用的就是gcc 编译器,命令格式为:

gcc 选项 文件名

o 参数为指定生成文件的文件名

举例:

将 helloworld.c 编译得到 helloworld,使用命令 sudo gcc helloworld.c -o helloworld。编译完成后使用命令./helloworld 来运行 helloworld 可执行程序,如下图所示:

 1 gcc 编译流程

从 c 程序编译得到可执行程序要经历四个步骤,分别是:预处理,编译,汇编,链接。在这四个步骤下我们可以得到三种类型的文件,分别是 xxx.i(预处理得到的 C 语言代码),xxx.s(汇编语言代码),xxx.o(目标文件)。接下来我们就逐步来编译可执行文件。

第一阶段:预处理阶段,在预处理阶段,编译会对头文件或者宏定义进行展开,或者是条件编译进行选择。

使用命令 sudo gcc -E helloworld.c -o helloworld.i 可以得到预处理后的文件,-E 参数是只对文件进行预处理,不编译和链接。如下图所示:

 第二阶段:编译,在编译阶段会把文件编译成汇编代码。

使用命令 sudo gcc -S helloworld.i -o helloworld.s,参数-S 是将.i 文件编译成.s 文件,如下图所示:

 第三阶段:汇编,把汇编文件编译成机器码。

使用命令 sudo gcc -c helloworld.s -o helloworld.o,参数-c 可以把.s 文件编译成.o 文件,如下图所示:

 第四阶段:链接

使用命令 sudo gcc helloworld.o -o helloworld。这里使用的是动态链接。

 迅为龙芯开发板:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值