【微记录】Makefile中wildcard(通配)的一种用法--如何避免某个头文件路径不存在造成CLFAGS添加后编译报错?

本文主要是介绍【微记录】Makefile中wildcard(通配)的一种用法--如何避免某个头文件路径不存在造成CLFAGS添加后编译报错?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 背景
  • 方法:wildcard
  • 补充信息
    • wildcard解释
    • Make中wildcard用法

背景

工程中,如果某个代码需要再不同平台有不同的依赖头文件,于是会出现不同平台依赖头文件路径不一样,但是为了适配多个平台如何做到避免某个头文件路径不存在造成CLFAGS添加后编译报错?

方法:wildcard

在Makefile中使用wildcard将路径剥离后查看是否为空,

ifeq ($(wildcard /path/to/directory),) #不存在$(info Directory does not exist)
else$(info Directory exists)CLFAGS = -I/path/to/directory
endif

补充信息

wildcard解释

在这里插入图片描述

Make中wildcard用法

在 Makefile 中,wildcard 函数是一个内置的函数,它用于生成一个文件名列表。这个函数通常用于创建一个目标或一个模式规则中所有匹配指定模式的文件列表。

语法:

$(wildcard xxx)

参数:
xxx:一个或多个文件名模式,可以包含通配符 * 和 ?。
返回值:
返回一个字符串,包含所有匹配指定模式的文件名列表,文件名之间由空格分隔。
示例:
假设你有一个目录结构如下:

src/|-- main.c|-- utils.c|-- read.c

使用 wildcard 函数来生成 src/ 目录下所有 .c 文件的列表:(类似一个find *.xxx的工具,通配)

SRC := $(wildcard src/*.c)

SRC输出:

 src/main.c src/utils.c src/read.c

注意点:

  • wildcard 函数只匹配当前目录和子目录中的文件,不会递归。

这篇关于【微记录】Makefile中wildcard(通配)的一种用法--如何避免某个头文件路径不存在造成CLFAGS添加后编译报错?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/991137

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

oracle中exists和not exists用法举例详解

《oracle中exists和notexists用法举例详解》:本文主要介绍oracle中exists和notexists用法的相关资料,EXISTS用于检测子查询是否返回任何行,而NOTE... 目录基本概念:举例语法pub_name总结 exists (sql 返回结果集为真)not exists (s

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

python 字典d[k]中key不存在的解决方案

《python字典d[k]中key不存在的解决方案》本文主要介绍了在Python中处理字典键不存在时获取默认值的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录defaultdict:处理找不到的键的一个选择特殊方法__missing__有时候为了方便起见,

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

Springboot中Jackson用法详解

《Springboot中Jackson用法详解》Springboot自带默认json解析Jackson,可以在不引入其他json解析包情况下,解析json字段,下面我们就来聊聊Springboot中J... 目录前言Jackson用法将对象解析为json字符串将json解析为对象将json文件转换为json

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re