首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用GNU make的$(foreach)遍历一个空项目

GNU make是一个常用的构建工具,可以用于自动化构建和管理项目。其中的$(foreach)函数可以用来遍历一个列表,并对列表中的每个元素执行相应的操作。

在遍历一个空项目时,$(foreach)函数可以用来执行一些初始化操作或者生成一些默认的文件或目录结构。以下是一个示例:

代码语言:makefile
复制
# 定义一个空项目的文件列表
FILES := main.c utils.c config.h

# 定义一个目标,用于遍历文件列表并执行操作
.PHONY: init
init:
    $(foreach file,$(FILES),$(shell touch $(file)))

# 定义一个目标,用于清理生成的文件
.PHONY: clean
clean:
    $(foreach file,$(FILES),$(shell rm -f $(file)))

在上面的示例中,我们定义了一个空项目的文件列表FILES,包含了main.cutils.cconfig.h三个文件。然后,我们定义了一个名为init的目标,使用$(foreach)函数遍历文件列表,并通过touch命令生成对应的文件。最后,我们定义了一个名为clean的目标,使用$(foreach)函数遍历文件列表,并通过rm命令删除对应的文件。

使用GNU make执行make init命令时,会生成main.cutils.cconfig.h三个文件。执行make clean命令时,会删除这三个文件。

这种遍历空项目的方式可以用于项目的初始化或者一些默认文件的生成。在实际应用中,可以根据具体需求进行相应的操作,比如创建目录、生成配置文件等。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Makefile学习2

ifeq后面的比较语句使用小括号抱起来,ifeq和小括号之间要用空格隔开,小括号里两个参数逗号隔开。当小括号里条件满足时,make就会执行这个分支命令,否则执行else部分。...ifdef 关键字 ifdef 关键字用来判断一个变量是否已经定义。如果变量值非(在Makefile中,没有定义变量值为),表达式为真。...ifndef 关键字 ifndef关键字和ifdef相反,如果一个变量没有定义,表达式为真。 Makefile函数 GNU make 提供了大量函数用来处理文件名、变量、文本和命令。...函数:用来统计一个字符串TEXT中单词个数 $(words TEXT) foreach函数:做一些循环或遍历操作 $(foreach VAR,LIST,TEXT) 把LIST中使用空格分割单词依次取出并赋值给变量...重复这个过程,直到遍历完LIST中最后一个单词。函数返回值是TEXT多次计算结果。

32210
  • 如何遍历执行一个包里面每个类例方法

    本人在使用 httpclient 做接口测试过程中,例是以代码形式写在一个例包里面的,包里每个类表示一类例,大致是按照接口所在模块划分。...这样就导致了一个问题,执行例必须得把例包里面所以类例方法都执行一边。之前使用过java 反射来根据类名创建类对象,然后根据方法名执行相应方法。...根据这个思路,加之上网查找了一些相关资料参考了一些其他人代码,自己封装了一个执行例包里面所有类例方法例执行类,分享出来,供大家参考。...); obj = c.newInstance(); className = c.getCanonicalName(); // 第一个参数写是方法名...* * @param packageName * 包名 * @param childPackage * 是否遍历子包

    95130

    VUE项目后台管理系统(一)创建一个vue项目,之后在这个项目里面写我们需要东西

    目录 创建一个vue项目 安装element-ui插件 项目里面引入element-ui插件 将我们准备好全局样式和字体放到对应目录下 将我们准备样式和字体引入到项目里面 创建登录页面 安装axios...创建一个vue项目 ?...以上就创建了一个项目 在vscode软件里面打开 ? ? 点击上面的那个,就启动项目了, ? 以上就是启动成功界面 ? 安装element-ui插件 打开官网 ? ?...项目里面引入element-ui插件 在main.js里面引入 ? 将我们准备好全局样式和字体放到对应目录下 ? ? 将我们准备样式和字体引入到项目里面 ?...创建登录页面 在组件文件夹下创建一个登录vue页面 ? 里面开始写东西 有了页面,开始写路由 ? 我们启动项目 ? ? 我们要访问跟目录,就到登录页面,可以重定向 ?

    1.1K20

    只含一个链域节点实现循环链表双向遍历

    现在问题是:如何设计一种环形表,使表每个结点只包含一个链域而又能够有效地对其进行两个方向查找。本文将给出一种实现方式。 首先,在给出之前,需要先了解一种有趣运算,那就是异或运算。...异或运算真值表如下: A B A^B 0 0 0 0 1 1 1 0 1 1 1 0 通过异或性质可以知道,对于任意一个二进制数a,有a^a = 0。...要使得表每个结点只包含一个链域而又能够有效地对其进行两个方向查找,可以让节点链域存结点前驱prev和后继next异或,再利用异或运算性质,可以得到(prev ^ next) ^ next =...我们可以把异或链域看成一把特殊锁,它有两把不同钥匙,钥匙next就可以打开前驱prev门,而用钥匙prev就可以打开后继next门。...prevXORnext; //前驱和后继异或 }; 在创建环形链表时,首先建立一个头节点rL,并申明节点指针prev和next,为了让头节点链域可以直接指向第一个节点firstP,将

    79751

    一个gradle构建java项目

    文件内容为: rootProject.name = "gradle-example-4" Copy rootProject.name 为构建分配一个名称,这将重写以其所在目录命名构建默认行为。...建议设置一个固定名称,因为如果项目是共享,文件夹可能会改变——例如作为Git仓库根目录。...,mavenCentral()表示中央仓库,dependencies中内容表示项目依赖。...; } }Copy 执行项目构建得到jar文件 在idea中构建gradle项目,需要关注gradle插件内容,特别是下图中红色部分 该配置描述了项目构建gradle版本,默认使用项目...执行build构建操作,可以得到项目jar文件 本文为从大数据到人工智能博主「xiaozhch5」原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

    71220

    Laravel和Thinkphp有什么区别,哪个框架好用

    如果没有则报语法错误,@foreach @endforeach同理;而TP框架则和PHP语法规则使用方式一致,直接if esle语句判断和foreach循环遍历。...例如对用户名验证:我们可以使用validate方法里’username’=>’required'(不能为)|alpha_dash(必须数字字母下划线)|between:6,18(在多少位数之间);还内置了例如...我想这可能是它牢牢占据NO.1一大亮点,在ThinkPHP中则需要我们借助SQL语句或者建表工具去逐步完善数据。 8.1、首先我们需要建立模型:我是gitbash。...gitbash是Windows下命令工具,基于msys GNU环境,有git分布式版本控制工具,主要应用于git。...make:model XXX; Laravel里模型是对面向对象开发思想最好诠释,让对象帮我们完成需求。

    6K20

    项目需求讨论 — Transition做一个漂亮登录界面

    前言 一次在逛Github时候,看到一个漂亮登录界面,是Transition做。我就直接贴上地址: MaterialLogin 当然,如果单纯直接拿过来用,没有任何意义。...而Translate通常我们指的是平移动画操作。 Transition: 所以我们知道了是过渡方式来做,那什么是过渡呢?...所以我们再回头看下面这种效果,是不是就知道怎么实现了,是Activity过渡动画了。 ? 正文 我们先准备第一个Activity,界面如下: ?...ArcMotion文档 里面的介绍我谷歌翻译翻译,大致应该是这个意思: PathMotion在包含两个点假想圆上沿圆弧生成曲线路径。...这里我们可以直接在上面fab按钮动画结束时候,直接让注册界面出现(因为这个注册界面是CardView写,所以这里直接cardView来指这个实例),我们可以在上面的结束监听里面直接设置: @Override

    1.8K20

    Actix写一个类似于Facemash项目总结

    项目Docker镜像配置; build-image.sh:打包镜像脚本; 对于 src 目录下各个子目录,见名知意,基本上很好理解了!...; 初始化项目日志; 初始化资源:数据库、Id生成器等; 注册并启动服务; 下面我们分别来看 配置与日志 获取环境配置 我们可以通过 dotenv 库解析位于项目下、以及系统环境变量中配置; 只需要下面一句话即可...、日志级别、SnowFlake 配置; 上面的语句会将这些配置解析; 初始化Logger main 函数中这条语句初始化了 Logger: logger::init(); 这个是 logger 模块封装一个函数...lazy_static 一个特性是:在首次使用这个变量时候,才会进行静态初始化; 下面分别来看: src/resource/mongo.rs use std::env; use async_once...最下面是一个单测,用于测试我们 Id 生成器; 至此,我们资源初始化完成; 完整文章,请传送至:https://rustcc.cn/article?

    43130

    Makefile 使用总结

    如果目标不是函数库文件(Unix下是[.a],Windows下是[.lib]),那么,其值为。 $<     依赖目标中一个目标名字。...如果目标中后缀是make所不能识别的,那么"$*"就是值。 当你希望只对更新过依赖文件进行操作时,"$?"...很多大型项目的编译都是通过 Makefile 来组织, 如果没有 Makefile, 那很多项目中各种库和代码之间依赖关系不知会多复杂....*注* command太长, 可以 "\" 作为换行符 2.1.2 规则中通配符 *     :: 表示任意一个或多个字符 ?     :: 表示任意一个字符 [...] :: ex....默认执行 make 命令时, GNU make在当前目录下依次搜索下面3个文件 "GNUmakefile", "makefile", "Makefile", 找到对应文件之后, 就开始执行此文件中一个目标

    3.6K30

    Makefile从入门到上手

    ---- 一、Makefile 介绍 Makefile 是一个名为 GNU-Make 软件所需要脚本文件,该脚本文件可以指导 Make 软件控制 arm-gcc 等工具链去编译工程文件最终得到可执行文件...,几乎所有的 Linux 发行版都内置了 GNU-Make 软件,VScode 等多种 IDE 也内置了 Make 程序。...= $(A) @echo B = $(B) 执行 make 可以看到 A 值为,B 值为 abc,因为 A 为即时变量,在定义时即确定,所以为 修改 Makefile 将 C 赋值放在最后...因为这个函数是用来做循环,Makefile 中 foreach 函数几乎是仿照于 Unix 标准 Shell(/bin/sh)中 for 语句,或是 C-Shell(/bin/csh)中 foreach...注意,foreach 参数是一个临时局部变量,foreach函数执行完后,参数 变量将不在作用,其作用域只在 foreach 函数当中。

    37430

    实现一个带后端服务 Vue 项目云开发Vue插件!

    导语 云开发CloudBase作为一站式云端一体化研发平台,为前端开发者提供了一站式计算、存储、数据库、托管等服务;开发者可以通过云开发,快速开发出一个业务完善,性能强劲 Web 应用,极大节约了研发时间...秉承“为开发者提供更好用云服务”服务宗旨,云开发团队推出云开发Vue插件,使用云开发Vue插件,开发者可以无需搭建服务器,一键实现Vue项目的服务端构建。...如何使用 01.安装 在你 Vue 项目中使用如下命令安装插件: npm install --save @cloudbase/vue-provider 02.使用 下面我们使用 LoginState...Vue 组件还提供了其他一些组件,帮助你更好开发应用。...无论你是要做活动营销页面,还是为你小程序开发一个管理控制台,都可以轻松实现。 小调查 除了 Vue 插件以外,你还期待有什么插件呢?

    84021

    Linux 开发 | 学习 Makefile

    @(linux 编程)[开发技能, 工具使用] What is GNU Make Make 是控制工程中通过源码生成可执行文件和其他相关文件工具。...Make 通过 Makefile 获取如何编译、链接和安装清理工程信息。 本文记录如何为自己工程编写一个Makefile,主要参考 GNU Make Manual。获取详细信息请直接阅读手册。...我们显示地 .PHONY来告诉 make 这是一个伪目标, 避免与实际目标命名冲突。 同运行程序时候我们给个参数让程序执行特定动作一样,运行 make 时指定伪目标标签,指定执行对应命令。...,返回空,如果全部都不为,返回最后一个参数。...具体手册 ---- ---- 参考 GNU Make Manual 中文版-跟我一起写makefile

    5.4K10

    Linux内核Makefile中cmd-check是如何检查前后两次执行命令是一致

    Linux内核构建工具GNU Make,在其相关Makefile中,有一个变量叫做cmd-check,其定义如下: # Check if both commands are the same...link-vmlinux.sh autoksyms_recursive $(vmlinux-deps) FORCE +$(call if_changed,link-vmlinux) 在该段内容中,定义了一个名为...在if_changed命令中,如果$(newer-prereqs)$(cmd-check)部分展开后结果不为,则执行后面$(cmd)指向命令,并将该命令printf输出到特定文件中。...如果两次命令相同,且$(newer-prereqs)结果为,则此时if_changed后面的构建命令就不用执行了,因为在这两次构建过程中,不管是prerequisites还是构建命令,都没有发生任何变化...existing targets existing-targets := $(wildcard $(sort $(targets))) -include $(foreach f,$(existing-targets

    1.6K10

    linux下源码安装

    (GNU m4宏处理器处理*.m4宏文件) ####2.编译 gcc找不到头文件: sudo find /(目录) -name 文件 makefile一般格式:目标:依赖 命令  例如:a.c...,b.c,main.c三个源文件,最终要编译成一个名为main可执行文件 main : a.o b.o main.o gcc a.o b.o main.o -o main main.o : main.c...gcc -c main.c b.o : b.c gcc -c b.c a.o : a.c gcc -c a.c #".PHONY {目标名}"显式定义一个伪目标(可以隐式定义) # "make {...函数:$(foreach ,,)函数返回值一次性赋值给变量组成新字符串 if函数:$(if ,) $(call <expression...make install,安装文件到usr/bin下   (卸载使用make uninstall,清理make产生缓存文件使用make clean) ####4.软件包管理工具  linux分为桌面系统领域和服务器系统领域

    7K41
    领券