首页 > 其他分享 > 我自己写Makefile, 里面注释了一些写法, 希望能帮到别人

我自己写Makefile, 里面注释了一些写法, 希望能帮到别人

时间:2022-11-27 01:00:44浏览次数:35  
标签:files objs 变量 dep Makefile ############################ 帮到 写法

 我自己写Makefile, 里面注释了一些写法, 希望能帮到别人。

 

# make一些规则
############################################################################
# $@ : 表示目标
# $^ : 表示所有的依赖
# $< : 表示第一个依赖
#
# =  : 使用=进行赋值, 变量的值是整个Makefile中最后被指定的值
# := : 使用:=进行赋值, 表示直接赋值
# ?= : 使用?=进行赋值, 表示如果该变量没有被赋值, 则赋予等号后的值
# += : 使用+=进行赋值, 和平时写代码的理解一样, 表示将等号后面的值添加到前面的变量
#
############################################################################ 



############################ 定义一些变量: 开始 ############################
cc := gcc
cflags := -O0 -Wall -g
objs := main_run.o\
       general_header.o\
       ode_forward_euler.o\
       ode_backward_euler.o\
       ode_trapezoid.o

# 定义变量dep_files: 保存所有的依赖(包括根据.h依赖所生成的依赖表.d文件)
dep_files := $(patsubst %, %.d, $(objs))

# 判断变量dep_files: 判断该变量中的文件是否存在, 得到真实存在的文件
dep_files := $(wildcard $(dep_files))
############################ 定义一些变量: 结束 ############################



############################ 编译目标文件: 开始 ############################
main_run: $(objs)
    $(cc) $(cflags) $^ -lm -o $@

# 判断变量dep_files是否为空, 如果不是空, 把变量dep_files中的依赖引入到Makefile中
ifneq ($(dep_files),)
include $(dep_files)
endif

# -MD -MF: 在编译源文件时, 生成依赖规则.d文件(包括.h)
$(objs): %.o: %.c
    $(cc) $(cflags) -c $< -MD -MF [email protected] -o $@
############################ 编译目标文件: 结束 ############################



# .PHONY: xxx : 明确说明, xxx命令与当前编译的目录中的同名文件无关
.PHONY: clean

# 设置该标签用于清楚.o和目标运行文件
clean:
    rm $(objs) $(dep_files) main_run

标签:files,objs,变量,dep,Makefile,############################,帮到,写法
From: https://www.cnblogs.com/weitao-miao/p/16928812.html

相关文章

  • 注释写法_便签
    单行注释//你好,这里是注释内容,在Java里,注释直接写在代码行后面也不会有问题呢!多行注释/*多行注释让我们可以写很多很多行注释都没有问题。*/Java......
  • vue路由传参的三种写法
    methods:{goSearch(){//1.路由传参字符串形式//this.$router.push("/Search/"+this.keyword+"?k="+this.keyword.toUpp......
  • 使用了外键的models 结合 Modelviewset的写法
    Serializers    重写create方法即可classMemberSerializers(serializers.ModelSerializer):defcreate(self,validate):users=Member.objects.......
  • [Linux 高并发服务器]Makefile
    [Linux高并发服务器]Makefile[Linux高并发服务器]Makefile​​[Linux高并发服务器]Makefile​​​​什么是Makefile​​​​文件命名和规则​​​​Makefile工作原理​​......
  • 留给大家的遗产(?)希望能帮到你们
    首先是之前一直在用的多线程对拍,非常强大(临近正式考试就不要用了,太强大了容易产生依赖)可以检测RE、AC、MLE、TLE、WA先把代码挂上点击查看代码#include<bits/stdc++......
  • 【 Makefile 编程基础之四】详解Makefile 函数的语法与使用!
    本站文章均为​​ 李华明Himi ​​​原创,转载务必在明显处注明使用函数:在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持......
  • 【 Makefile 编程基础之二】Makefile 书写规划以及语法规则!
    本站文章均为​​ 李华明Himi ​​​原创,转载务必在明显处注明:书写规则:规则包含两个部分,一个是依赖关系,一个是生成目标的方法。在Makefile中,规则的顺序是很重要的,因为,Mak......
  • 【 Makefile 编程基础之三】详解 Makefile 变量的定义规则使用!
    本站文章均为​​ 李华明Himi ​​​原创,转载务必在明显处注明:使用变量:在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候......
  • 【 Makefile 编程基础之一】详细介绍Makefile概念和其机制用途;
    本站文章均为​​ 李华明Himi ​​​原创,转载务必在明显处注明: 概述:什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,......
  • iTOP2K1000开发板Makefile文件
    Makefile就是描述了整个工程编译连接等规则的文件。我们在终端输入完make命令之后,会调用make工具,make就会在当前目录按照文件名就会找makefile文件,Makefile的命......