⑥使用依赖文件的预定义变量改写Makefile,实现第④步功能并使用make工具生成这个可执行文件,并运行。
[root @localhost prime]# make clean
[root @localhost prime]# mv Makefile Makefile1 [root @localhost prime]# vi Makefile 进入Makefile编辑: CC=gcc CFLAGS=
OBJS=prime.o main.o
all:prime
prime:prime.o main.o $(CC) $(CFLAGS) $^ -o $@
prime.o:prime.c $(CC) $(CFLAGS) -c $< -o $@
main.o:main.c prime.h $(CC) $(CFLAGS) -c $< -o $@
clean: rm -fr prime_hehui *.o
当编辑完上面的Makefile的时候,按下ESC,然后输入\退出编辑框。
[root @localhost prime]# make
[root @localhost prime]# ./prime_hehui
四、思考题
1.为什么要使用交叉编译模式? 答:交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程
序,比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,编译得到的程序在X86 CPU平台上是不能运行的,必须放ARM CPU平台上才能运行,虽然两个平台用的都是Linux系统。这种方法在异平台移植和嵌入式开发时非常有用。
2.gcc和交叉编译工具生成的可执行文件有什么不同?
答:可执行文件的目标平台不一样。你说的gcc应该是指在pc上,即x86体系结构。而交叉编译生成的应该是其他体系平台的,如ARM等只能在对应的平台上运行。
3.Makefile文件的作用?
答:Makefile文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系(源代码文件需要的特定的包含文件,可执行文件要求包含的目标文件模块及库等).创建程序(make程序)首先读取Makefile文件,然后再激活编译器,汇编器,资源编译器和连接器以便产生最后的输出,最后输出并生成的通常是可执行文件.创建程序利用内置的推理规则来激活编译器,以便通过对特定cpp文件的编译来产生特定的obj文件.