"); //-->

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。这里使用的是动态链接。

迅为龙芯开发板:





专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
利用PIC24F Curiosity开发板简化设计
51单片机开发板
米尔出席openEuler Summit 2024,携全志T536和RK3562核心模组亮相
米尔-瑞萨RZ/G2L核心板开发板的系统启动时间优化应用笔记
出一个全新正点原子STM32战舰开发板,全新板二手价
AN2131开发板原理图.rar
CY7C68013开发板原理图.rar
单片机开发板
慕尼黑电子展上展出的开发板(还有3D 打印机等~)
NEC MCU 78F0513D开发板使用教程
莱迪思联手英伟达推出 Sensor Bridge 方案 加速边缘 AI 产品落地
Kinetis K60系列MCU开发板CFUMEVK-KIT
拆解:树莓派5 8 GB AI 套件
Jobs芯科EFR32xG24 Dev Kit开发板开箱视频
ARM嵌入式系统开发板三星S3C44B0X的完整Protel电路图.rar
(已送出,结贴)送一块51开发板,你出邮费
在米尔FPGA上实现Tiny YOLO V4,助力AIoT应用
AM3359支持WINCE7.0
6TOPS算力驱动30亿参数LLM,米尔RK3576部署端侧多模态多轮对话
米尔出席2025安路科技FPGA技术沙龙
建议王总组织个开发板的捐赠活动
GWEVB_XC蓝牙设备开发板
国产FPGA SoC芯选择,米尔安路飞龙核心板重磅发布
CFUMEVK-KIT开发板设计方案
SL811HS开发板原理图.rar
Badge USB OCD 与 78F0513D 使用演示视频
Microchip PIC24FJ256DA210开发板在图形显示上的应用
3G高分辨率平板开发板设计方案
12路1080P高清视频流,米尔RK3576开发板重塑视频处理极限
当6 TOPS不再是极限:米尔RK3576 + Hailo-8,让高帧率摄像头真正“实时”