(一)发行版:Ubuntu16.04.7
(二)记录:
(1)gcc简介:GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言编译器。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)
(2)gcc支持多种计算机体系结构,如x86,MIPI,ARM等
(3)Ubuntu自带gcc,查看gcc版本 gcc -v
(4)gcc基本用法
a.
gcc+文件名+参数+生成的文件名
比如:gcc hello.c -o hello将hello.c编译之后生成一个可执行文件hello。
加上-o参数可以指定生成文件的名字,
./hello在当前目录寻找hello可执行文件(必须加上./)
b.
如果不用-o参数指定名字,那么默认生成文件的名字为a.out
c.
file命令,查看文件类型。
格式:file+文件名
该程序只能在x86架构上运行,在gcc上编译出来的程序不能在ARM开发板运行。
d.
编译细节:从hello.c到hello可执行文件
预处理,编译,汇编,链接
hello.i 预处理得到的c语言代码
hello.s 汇编语言文件
hello.o 目标文件
hello.o链接---->可执行文件
从.s汇编文件编译到.o目标文件时键入的参数c为小写,大写C会直接生成目标文件并且建立链接
e.
静态编译与动态编译的区别
hellos为静态编译的结果,可以发现比动态编译的hello占用空间大了100多倍
(三)命令: