【问题标题】:Exclude files from makefile从 makefile 中排除文件
【发布时间】:2016-08-23 13:12:44
【问题描述】:

我的 makefile 中有一条规则,它使用通配符来获取目录中的所有 .c 文件:

SRCS_ENC  = $(foreach DIR,$(SRC_ENC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c)))

现在我想排除所有带有特定后缀的文件,例如“测试”

function_test.c
function2_test.c
...

如何在 makefile 中执行此操作?我试过过滤,但没有用。

【问题讨论】:

  • 这个问题与 CMake 有什么关系?你用 CMake 生成 Makefile 吗?
  • 不,抱歉,我使用的是 gcc 编译器。
  • "我试过过滤,但没有用。"然后你犯了一个错误,很遗憾我们看不到。

标签: gcc makefile


【解决方案1】:

尝试使用立即分配而不是延迟并像这样进行过滤:

SRCS_ENC := $(foreach DIR,$(SRC_ENC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c)))
SRCS_ENC := $(filter-out %_test.c, $(SRCS_ENC))

您可以在此处找到GNU make 内置字符串操作函数的文档:https://www.gnu.org/software/make/manual/html_node/Text-Functions.html

【讨论】:

    猜你喜欢
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    相关资源
    最近更新 更多