2、编译成汇编代码 预处理文件→汇编代码 ●使用-x参数说明根据指定的步骤进行工作, cpp-output.指明从预处理得到的文件开始编译 使用-S说明生成汇编代码后停止工作 gcc -x cpp-output -S -o gcctest.s gcctest.cpp 也可以直接编译到汇编代码 gcc -S gcctest.c 4口4四1是14P刀00 陈香兰(xlanchenoustc,ed加.cn)(计年丸应 长人式样饰泰统 oveaber28,201419/111
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2、编译成汇编代码 . 预处理文件→汇编代码 . . 1. 使用-x参数说明根据指定的步骤进行工作, cpp-output指明从预处理得到的文件开始编译 2. 使用-S说明生成汇编代码后停止工作 gcc -x cpp-output -S -o gcctest.s gcctest.cpp . 也可以直接编译到汇编代码 . . gcc -S gcctest.c 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室@计算机学院嵌入式系统实验室 嵌入式操作系统 @苏州研究院中国科学技术大学Fall 2014) November 28, 2014 19 / 111
3、编译成目标代码 汇编代码→目标代码 gcc -x assembler -c gcctest.s 直接编译成目标代码 gcc -c gcctest.c 使用汇编器生成目标代码 as -o gcctest.o gcctest.s 4口4四1是14P刀00 陈香兰(xlanchenoustc,ed加.cn)(计年丸应 长人式样饰泰统 oveaber28,201420/111
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3、编译成目标代码 . 汇编代码→目标代码 . . gcc -x assembler -c gcctest.s . 直接编译成目标代码 . . gcc -c gcctest.c . 使用汇编器生成目标代码 . . as -o gcctest.o gcctest.s 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室@计算机学院嵌入式系统实验室 嵌入式操作系统 @苏州研究院中国科学技术大学Fall 2014) November 28, 2014 20 / 111
4、编译成执行代码 目标代码→执行代码 gcc -o gcctest gcctest.o 直接生成执行代码 gcc -o gcctest gcctest.c 4口4四是4P在刀0C 陈香兰(xlanchenoustc,ed加.cn)(计年丸应 收人式择作系统 oveaber28,201421/111
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4、编译成执行代码 . 目标代码→执行代码 . . gcc -o gcctest gcctest.o . 直接生成执行代码 . . gcc -o gcctest gcctest.c 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室@计算机学院嵌入式系统实验室 嵌入式操作系统 @苏州研究院中国科学技术大学Fall 2014) November 28, 2014 21 / 111
gcc的高级选项 。-Wa11:打开所有的警告信息 gcc -o gcctestgcctest.c-Wall gcctest.c:In function 'main': gcctest.c:8:1:warning:control reaches end of non-void function [-Wreturn-type] 4口4四是4P在刀0C 陈香兰(xlanchenoustc,ed加.cn)(计年丸应 收人式掉作系蛇 Novesber28,201422/111
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . gcc的高级选项 -Wall:打开所有的警告信息 . gcc -o gcctest gcctest.c -Wall . . gcctest.c: In function ‘main’: gcctest.c:8:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室@计算机学院嵌入式系统实验室 嵌入式操作系统 @苏州研究院中国科学技术大学Fall 2014) November 28, 2014 22 / 111
gcc的高级选项 。根据警告信息检查源程序 源程序:gcctest.c #include <stdio.h> int main(void){ int i,j; i=0;j=0; i=j+1; printf(“Hel1 o World!\n”); printf(“i=jtl=%d小n”,i); ,Main函数的返回值为int ,在函数的末尾应当添加返回一个值 4口4四是4P在刀0C 陈香兰(xlanchenoustc,edu,cn)(计界轧应 故人式操作系战 November28,201422/111
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . gcc的高级选项 根据警告信息检查源程序 . 源程序:gcctest.c . . #include <stdio.h> int main(void){ int i,j; i=0;j=0; i=j+1; printf(“Hello World!\n”); printf(“i=j+1=%d\n”,i); } ▶ Main函数的返回值为int ▶ 在函数的末尾应当添加返回一个值 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室@计算机学院嵌入式系统实验室 嵌入式操作系统 @苏州研究院中国科学技术大学Fall 2014) November 28, 2014 22 / 111