Makefile和CMake

本文介绍了Makefile的主要规则,包括目标、依赖和命令,强调了伪对象的概念及其使用。此外,还详细讲解了变量定义和自动变量的用法。接着转向CMake,阐述了CMakeLists.txt文件配置、CMake工作流程以及如何处理多项目工程。文章最后提供了简单的CMakeLists.txt范例,并推荐了查阅CMake官方文档以获取更多详细信息。
摘要由CSDN通过智能技术生成

Makefile、

makefile主要规则:

#伪对象
.PHONY : clean

#规则1
main : main.o
    gcc main.o -o main

#规则2
main.o : main.c
    gcc -c main.c -o main.o

#规则3
clean :
    rm main *.o

如上图所示这个makefile有3个规则,从上述代码可以看出makefile的通用规则。例如规则1,“main”是目标,“main.o”是依赖,“gcc main.o -o main”是命令。makefile的一般规则格式就是:

目标 : 依赖
    命令

注意的是命令之前的不是空格而是Tab键。

规则表达的含义:如果目标的更新时间比依赖的更新时间要晚,那么就执行命令。当依赖为空时,就判断目标是否存在,如果不存在就执行命令。当目标是个伪对象(下面会解析伪对象)那么就直接执行命令。当执行“make main”的时候就是执行规则1。如果运行“make”就默认执行第一条规则,也就是规则1。

伪对象:目标可以是个文件也可以是个伪对象。伪对象的含义就是一个名字,表达规则的目标。如果运行make程序的目录中存在一个与伪对象名字一样的文件,那么make程序不知道这个名字是文件还是伪对像。“.PHONY : clean”就是用于告诉make程序,clean是个伪对象而不是文件。如果没有这个声明,make程序会把clean当做是文件,所以如果存在clean文件的时候,那么运行这个规则的时候就会当做文件存在而不执行命令。

变量:

.PHONY : clean

CC = gcc
RM = rm
EXE = main
SRCS = main.c

$(EXE) : $(SRCS )
    $(CC) $(SRCS ) -o $(EXE)

clean : 
    $(RM) -rf .

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值