资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,Linux,下编译程序的三种方式,gcc,make,make f,文件,gcc,编译,这是最原始的、最简单的编译方式,适合小程序。,格式:,gcc,option filename,常用参数:,-c,只是预处理,编译和汇编产生,obj,文件,-o,指定输出文件。,-g,在执行文件中输出调试信息,通常为,GDB,所用,-On,代码优化,,n,随着系统不同而不同,-Wall,打开警报开关,gcc,编译,#include ,int,main(void,),printf(“Hello,world! n”);,return 0;,源程序:,gcc,c,hello.c,o,hello.o,gcc,o hello,hello.o,编译程序:,./hello,执行程序:,gcc,c,hello.c,gcc,o hello,hello.o,gcc,o hello,hello.c,make,什么是,make?,或者为什么要,make?,什么是,makefile,?,makefile,规则,什么是,make?,Make,是一个工具,一个编译管理工具。或者说,make,是一个命令。用来解决大项目的程序编译管理问题。,什么是,makefile,?,Make,的执行依赖于一个叫做,makefile,的文件。,makefile,规则,:, /,依赖关系,(tab) /,编译命令,源程序:,myprog,:,foo.o,bar.o,/,依赖关系,gcc,foo.o,bar.o,o,myprog,/,编译命令,foo.o,:,fooc,foo.h,bar.h,gcc,c,foo.c,bar.o,:,bar.c,bar.h,gcc,c,bar.c,参考,makefile1,:,makefile,规则,CC =,gcc,EXEC =,myprog,OBJS =,star.o,hello.o,$(EXEC):$(OBJS),$(CC) -o $(EXEC) $(OBJS),star.o:starfun.h,star.c,$(CC) -c,star.c,hello.o:starfun.h,hello.h,hello.c,$(CC) -c,hello.c,clean:,rm,-f *.o *.out $(EXEC),参考,makefile2,:,ARM,编译器?,CC = arm-,linux-gcc,make f,文件,make,的以来文件可以不是,makefile,或者,Makefile,。这样的话,就要使用,make f filename,
展开阅读全文