作者:GWD 时间:2019.7.6
一、课程内容
1、本节课着重讲解:
1)、gcc和arm-linux-gcc的常用选项-V,-O,-E,-S,-C;
2)、介绍了3种.c文件变成可执行文件的步骤:
2、问:GCC的常用选项及其功能?
答:
gcc的使用方法:
gcc [选项] 文件名
-v:查看gcc编译器的版本,显示gcc执行时的详细过程
-o :Place the output into ,指定输出文件名为file,这个名称不能跟源文件名同名
-E:Preprocess only; do not compile, assemble or link,只预处理,不会编译、汇编、链接
-S:Compile only; do not assemble or link,只编译,不会汇编、链接
-c:Compile and assemble, but do not link,编译和汇编,不会链接
3、问:一个C/C++文件变成可执行文件的三种方法?
答:需要经过预处理、编译、汇编和连接等四步才可以变成一个可执行文件。
实验代码:hello程序并上传到linux虚拟机。
1)、方式1(不推荐):
gcc hello.c 输出一个a.out,然后./a.out来执行该应用程序。
gcc -o hello hello.c 输出hello,然后./hello来执行该应用程序。
2)、方式2:
gcc -E -o hello.i hello.c(预处理)
gcc -S -o hello.s hello.i(编译)
gcc -c -o hello.o hello.s(汇编)
gcc -o hello hello.o(连接)
.o:object file(OBJ文件)
小结:
1)、输入文件的后缀名和选项共同决定gcc到底执行那些操作。
2)、在编译过程中,除非使用了-E、-S、-c选项(或者编译出错阻止了完整的编译过程)
否则最后的步骤都是链接。
二:学习要点:
1、问:预处理、编译、汇编、连接分别有什么作用?
答:预处理是展开宏定义,以“#”开头的命令被称为预处理命令;编译是把C文件“翻译”成汇编代码;汇编是把上一步输出的汇编代码翻译成一定格式的机器码;连接是将上一步生成的OBJ文件和系统库OBJ文件连接起来。
三:代码:(无)