makefile的简单使用

-c代表编译,-o代表链接

-o代表指定输出文件名

-c只编译,无连接(g++ main.cpp -c)

 

 

 

编写makefile便于在多个文件的情况下,去编译连接多个代码文件。将需要重复执行的编译执行操作写在文件中,每次执行程序时,调用该makefile文件即可。

 

 

makefile文件的编写:

 

通过makefile文件执行过程:

 每次编译之后,都会生成.o文件。可以在makefile文件的编写过程中,加入编译之后删除.o文件的操作。

下图为运行makefile文件之后,文件夹的变化:

 makefile文件的编写:相应规则,start,clean等为标号,必须写,方便后期makefile文件按照标号分类执行。

其次,标号里的内容,与标号的间隔,为一个tab

 

 

 

执行带标号的文件,make +标号名。

例如此makefile文件里有两个标号,start和clean,

则在执行时,输入make start和make clean

 

如果写成以上,就成为一个简单的批处理,没有价值。

 定义变量,makefile里面的变量没有类型,只是定义一个变量。makefile变量习惯写成大写

 

 

变量定义:CC=g++;

在使用变量时:$(变量)

 

makefile的依赖:

start:后面的 a.o 和main.o为makefile该文件的依赖。

          执行顺序:执行到start之后,遇到a.o和main.o

会先去找,是否有a.o:     和main.o:,如果有就先执行a.o:  和main.o:下面的语句,只有当这两个语句执行之后,a.o和main.o才生成,生成之后,才能执行 :$(CC) -o myapp a.o main.o语句

 

 

 

工作中的书写

整个程序依赖于a.o main.o

①:缺省a.o,

跳转到:.cpp.o:执行$(CC) -o $a.o -c $a.cpp

②:缺省main.o

跳转到:  .cpp.o:执行$(CC) -o $main.o -c $main.cpp

 

再次优化:

也就是利用SRCS,OBJS,EXEC等变量名,通过$(变量名)这一操作实现对变量名内多个文件循环操作。

make是根据.cpp和.o文件的最后修改日期判断cpp文件是否需要编译。如果.o文件不存在,make会失去判断条件,那么一定会编译cpp文件。

make不关注.h文件,.h文件属于os关心的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值