gpt4 book ai didi

带有通配符的 Makefile 目标以使用目标字符串创建符号链接(symbolic link)

转载 作者:行者123 更新时间:2023-12-05 01:11:36 25 4
gpt4 key购买 nike

我想要一组生成文件规则,在构建项目之前创建指向几个代码模块之一的符号链接(symbolic link)。 make 目标的名称将确定符号链接(symbolic link)指向的文件。例如:

  • 用户调用“make R3000”
  • Make 发现 'data.asm' 还不存在,因此创建了一个从 'data_R3000.asm' 到 'data.asm' 的符号链接(symbolic link)
  • 使用 data.asm
  • 继续构建过程

    我如何设置规则来做到这一点?

    最佳答案

    也许是这样的:

    MODULES := $(patsubst data_%.asm,%,$(wildcard data_*.asm))

    all:
    ...

    data.asm:
    [ -n "$(filter $(MAKECMDGOALS),$(MODULES))" ] || { echo unknown module: $(MAKECMDGOALS) ; exit 1; }
    ln -s $(filter $(MAKECMDGOALS),$(MODULES)) $@

    然后确保 data.asm在相应的规则中被列为先决条件。

    关于带有通配符的 Makefile 目标以使用目标字符串创建符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21064718/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com