• makefile中编写查询文件夹是否存在以及创建


    要在Makefile中查询文件夹是否存在,如果不存在则创建它,你可以使用ifeq条件语句结合ifeq函数、mkdir命令和条件判断来实现。下面是一个示例Makefile,演示如何查询文件夹是否存在,如果不存在则创建文件夹

    # 文件夹名
    FOLDER_NAME := my_folder
    
    # 查询文件夹是否存在
    ifeq ($(wildcard $(FOLDER_NAME)),)
    # 如果文件夹不存在,则创建文件夹
    create_folder:
        @echo "Creating $(FOLDER_NAME) folder"
        @mkdir -p $(FOLDER_NAME)
    else
    # 如果文件夹已经存在,则不进行任何操作
    create_folder:
        @echo "$(FOLDER_NAME) folder already exists"
    endif
    
    # 默认目标
    .PHONY: default
    default: create_folder
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在上面的示例中,我们首先定义了一个变量FOLDER_NAME,用于存储文件夹名。然后,在create_folder目标中,我们使用wildcard函数来检查文件夹是否存在。如果文件夹不存在,就会执行创建文件夹的操作,否则会输出文件夹已存在的消息。

    你可以在终端中运行make命令来执行这个Makefile,并根据文件夹是否存在来执行不同的操作。

    你可以将检查和创建文件夹的逻辑封装成一个Makefile中的函数接口。下面是一个示例Makefile,定义了一个名为check_and_create_folder的函数接口,它可以用于批量检查和创建文件夹:

    # 定义检查和创建文件夹的函数接口
    define check_and_create_folder
        # 第一个参数是文件夹名
        FOLDER_NAME := $(1)
        ifeq ($(wildcard $(FOLDER_NAME)),)
            @echo "Creating $(FOLDER_NAME) folder"
            @mkdir -p $(FOLDER_NAME)
        else
            @echo "$(FOLDER_NAME) folder already exists"
        endif
    endef
    
    # 示例用法:检查和创建多个文件夹
    .PHONY: create_folders
    create_folders:
        $(call check_and_create_folder, folder1)
        $(call check_and_create_folder, folder2)
        $(call check_and_create_folder, folder3)
    
    # 默认目标
    .PHONY: default
    default: create_folders
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在上面的示例中,我们首先定义了check_and_create_folder函数接口,该接口接受一个参数作为文件夹名。然后,在create_folders目标中,我们使用$(call ...)来调用函数接口,并传递不同的文件夹名作为参数,以便批量检查和创建文件夹。

    你可以在终端中运行make create_folders命令来执行这个Makefile,并根据传递的文件夹名参数来执行检查和创建文件夹的操作。

  • 相关阅读:
    哇喔~~~
    【Java游戏项目】超级玛丽(附源码)
    Python项目开发实战:网络爬虫批量采集股票数据保存到Excel中
    Pytorch模型训练实用教程学习笔记:一、数据加载和transforms方法总结
    Python内存管理:引用计数与垃圾回收
    JSP config对象
    我是如何使用Spring Retry减少1000 行代码
    python深入浅出的装饰器1
    【回归预测】基于DBO-BP(蜣螂优化算法优化BP神经网络)的回归预测 多输入单输出【Matlab代码#68】
    java - 网络编程TCP/IP
  • 原文地址:https://blog.csdn.net/qq_36683398/article/details/132827849