linux下 使用makefile

来源:互联网 发布:linux清空文件内容 编辑:程序博客网 时间:2024/05/19 18:00

c++ 的程序生成过程是有 预编译,编译,和链接三个阶段组成的。


当我们使用单个cpp文件的时候,直接用命令

g++ main.cpp -o main 


就可以得到我们需要的可执行文件,一个文件就没有链接的步骤了。


但是,如果我们的项目需要用到多个cpp文件,那么我们就要用到链接了。


比如我们有一个主文件 : main.cpp

另外编写了一个类: book.cpp

以及这个类的声明文件:book.h


那么如果我们手动写g++编译命令怎么写呢。


1.产生编译文件,使用 -c参数表示只编译不链接


g++ -c main.cpp -o main.o


g++ -c book.cpp -o  book.o


这个时候就会生成main.o 和book.o两个编译好的文件。


2.链接


g++ main.o book.o -o project


这个时候就会产生名为project的可执行文件了。


可是如果要链接的文件特别多还经常改变,那么我们一个个手动编译链接就太没有效率了,所以这个时候出现了makefile

----------------------------------------------------------------------

makefile可以理解为对cpp文件进行编译、链接的脚本文件


编写规则如下:


target ... : prerequisites ...    (Tab键)   command



那么把我们上面的编译过程变成makefile文件



all: projectproject:main.o book.o        g++ main.o book.o -o projectmain.o:main.cpp        g++ -c main.cpp -o main.obook.o:book.cpp        g++ -c Sales_item.cpp -o book.oclean:        rm *.o                  


然后,我们在Linux运行命令 
make

系统就会自动执行上面的makefile脚本

然后生成可执行文件 project


最后我们执行 make clean 就会运行命令 rm *.o    这样就可以删除生成的中间文件。


0 0