1 gcc基本用法
gcc [options] filenames
options:编绎器所需要的编绎选项(这个可选可不选)
filenames:要编绎的文件名
2 gcc的编绎过程分为4个阶段
(1)预处理 hello.c->hello.i 命令 gcc -E hello.c -o hello.i(将宏,头文件展开等等)
(2)编绎 hello.i->hello.s 命令 gcc - S hello.i -o hello.s (将预处理后的文件变成汇编文件)
(3)汇编 hello.i->hello.o 命令 gcc -c hello.i -o hello.o (将汇编文件变成二进制文件)
( 4 ) 链接 hello.o->hello 命令 gcc hello.i - o hello (将二进制文件(hello.o与库(如C函数库)链接)变成可执行文件)
注意,以上的各步可以直接由任意一步跳到任意一步,可以不用按照每步的顺序
3 Gcc通过后缀来区别输入文件的类别,常见类型有:
v .c为后缀的文件: C语言源代码文件
v .a为后缀的文件: 是由目标文件构成的库文件 (这个比较不清楚)
v .C,.cc或.cxx 为后缀的文件: 是C++源代码文件
v .h为后缀的文件: 头文件
v .o为后缀的文件: 是汇编后的目标文件 (这个比较不清楚)
v .s为后缀的文件: 是汇编语言源代码文件
4编绎选项
-O 和 -O2 进行优化 (time ./a.out可以得到执行所需的时间)
-g 使程序可以被(gdb等)调试
-I (大写的i) #include <A.h>
#include “B.h”
对于<>,gcc在系统预设的头文件目录(如LINUX下的/usr/include)中搜寻
相应的文件;而对于””,gcc在当前目录中搜寻头文件。-I选
gcc 项的作用是告诉gcc,如果在当前目录中没有找到需要的文件,
就到指定的dirname目录中去寻找。
-w 将所有的警告都忽略,不打印
-Wall 将所有的警告都打印出来,比不加Wall时多
gcc [options] filenames
options:编绎器所需要的编绎选项(这个可选可不选)
filenames:要编绎的文件名
2 gcc的编绎过程分为4个阶段
(1)预处理 hello.c->hello.i 命令 gcc -E hello.c -o hello.i(将宏,头文件展开等等)
(2)编绎 hello.i->hello.s 命令 gcc - S hello.i -o hello.s (将预处理后的文件变成汇编文件)
(3)汇编 hello.i->hello.o 命令 gcc -c hello.i -o hello.o (将汇编文件变成二进制文件)
( 4 ) 链接 hello.o->hello 命令 gcc hello.i - o hello (将二进制文件(hello.o与库(如C函数库)链接)变成可执行文件)
注意,以上的各步可以直接由任意一步跳到任意一步,可以不用按照每步的顺序
3 Gcc通过后缀来区别输入文件的类别,常见类型有:
v .c为后缀的文件: C语言源代码文件
v .a为后缀的文件: 是由目标文件构成的库文件 (这个比较不清楚)
v .C,.cc或.cxx 为后缀的文件: 是C++源代码文件
v .h为后缀的文件: 头文件
v .o为后缀的文件: 是汇编后的目标文件 (这个比较不清楚)
v .s为后缀的文件: 是汇编语言源代码文件
4编绎选项
-O 和 -O2 进行优化 (time ./a.out可以得到执行所需的时间)
-g 使程序可以被(gdb等)调试
-I (大写的i) #include <A.h>
#include “B.h”
对于<>,gcc在系统预设的头文件目录(如LINUX下的/usr/include)中搜寻
相应的文件;而对于””,gcc在当前目录中搜寻头文件。-I选
gcc 项的作用是告诉gcc,如果在当前目录中没有找到需要的文件,
就到指定的dirname目录中去寻找。
-w 将所有的警告都忽略,不打印
-Wall 将所有的警告都打印出来,比不加Wall时多
-D宏的名字 在编绎时加上这个,相当于在程序中加上了#define 宏的名字(表示宏已定义)
-Z