linux下 使用makefile

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: project

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

main.o:main.cpp
        g++ -c main.cpp -o main.o
book.o:book.cpp
        g++ -c Sales_item.cpp -o book.o
clean:
        rm *.o
                  


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

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

然后生成可执行文件 project


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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值