如何使用Makefile(vim)中的ifeq检查头文件是否位于main.c中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Makefile(vim)中的ifeq检查头文件是否位于main.c中相关的知识,希望对你有一定的参考价值。

我想在Makefile中使用“ifeq”检查我的“c代码”中是否存在头文件。我正在使用“test -f”来检查字符串是否存在于c文件中。我通过在我的c代码中注释掉头文件来测试它,但是当我重新初始化头文件时它从不输入“ifeq”语句。我在“ifeq”声明中遗漏了什么?我在Linux上使用vim文本文件。谢谢

我已经查看了“test -f”的shell命令,但无法弄清楚我做错了什么

ifeq ($(test -f my.h && echo true) , true)
     CFLAGS += -DCONFIG_H
 else
     $(info VAR="$(VAR)")
 endif

初始化头文件时,它进入else语句

答案

做你想做的最好的方法是:

ifeq ($(wildcard my.h),)
    $(info VAR="$(VAR)")
else
    CFLAGS += -DCONFIG_H
endif

以上是关于如何使用Makefile(vim)中的ifeq检查头文件是否位于main.c中的主要内容,如果未能解决你的问题,请参考以下文章

makefile中ifeq,ifneq,ifdef和ifndef的区别与用法

vim和makefile问题

在 makefile 中使用 ifeq 编译 C 或 CPP 文件

makefile中ifeq,ifneq,ifdef和ifndef的区别与用法

makefile ifneq 语句的使用疑问 ifeq ($(strip $(CHIP_VER)),6600L6) 这句话是啥意识

如何在makefile中添加打印信息