一步到位的编译指令是: gcc testc -o test
实质上,上述编译过程是分为四个阶段进行的,即预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编 (Assembly)和连接(Linking)。
预处理: gcc -E testc -o testi 或 gcc -E testc
编译为汇编代码: gcc -S testi -o tests
汇编: gcc -c tests -o testo
连接: gcc testo -o test
是一个用于编程开发的自由编译器。最初,GCC只是一个C语言编译器,它是GNU C Compiler 的英文缩写。随着众多自由开发者的加入和GCC自身的发展,如今的GCC已经是一个包含众多语言的编译器了。其中包括 C,C++,Ada,Object C和Java等。所以,GCC也由原来的GNU C Compiler变为GNU Compiler Collection。也就是 GNU编译器家族的意思。当然,如今的GCC借助于它的特性,具有了交叉编译器的功能,即在一个平台下编译另一个平台的代码。#自己定义一些变量,方便使用和修改
EXEC = pipe #执行文件
OBJS = pipeo #目标文件
HEADERS = #头文件、源文件
CC = gcc #编译器
INC = -I #头文件目录
CFLAGS = ${INC} -g #编译标志位
#变量定义完毕
#指定依赖关系:${OBJS}依赖${HEADERS},也就是pipe依赖xx
${OBJS}:${HEADERS}
#指定依赖:${EXEC}依赖${OBJS},也就是pipe依赖pipeo
${EXEC}:${OBJS}
#指定生成规则
${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${OBJS}
#伪目标
PHONY:clean,all
#用于清除文件
clean:
#删除目标文件和执行文件
-rm -f ${OBJS} ${EXEC}
#用于生成所有文件
all:${EXEC}
编译只需make all即可,清除make clean
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)