高级语言的代码无法被计算机执行,需要将高级语言代码编译成汇编语言,然后再将汇编语言翻译成机器指令,最后通过链接生成最后的可执行文件,此时该文件才可以被计算机执行。总共有四步:
主要用于生成头文件的扩展以及宏替换等。生成 .i 文件
例如:
gcc -E hello.c -o hello.i
主要将高级语言代码翻译成汇编语言,得到汇编文件。生成 .s 文件
例如:
gcc -S hello.i -o hello.s
主要将汇编语言翻译成机器指令,得到目标文件。生成 .o 文件
例如:
gcc -c hello.s
主要将目标文件和库文件进行链接,生成可执行文件
例如:
gcc hello.o //生成 a.out 这一可执行文件
gcc hello.o -o hello //生成 hello 这一可执行文件


格式:gcc [选项] [参数] 文件1 文件2 ...
gcc -E 预编译
缺省输出到屏幕,使用-o选项来制定输出文件(.i文件)
gcc -S 编译
将高级语言文件翻译成汇编语言文件(.s文件)
gcc -c 汇编
将汇编语言文件汇编成机器语言文件(.o文件)
gcc -o 指定输出文件名
gcc xxx.c 编译+链接,默认生成a.out
gcc 1.c -std=c99gcc -g 用于生成调试信息,可以进行gdb调试;
用于检查段错误的原因;
gdb a.out->run->bt 回车,退出用quit
gcc -x 显示指定源代码的编程语言
xxx.c - C语言
xxx.cpp - C++语言
xxx.for - Fortran语言
xxx.java - Java语言
gcc -O (大写的o)用于进行优化处理