gpt4 book ai didi

makefile - 如何在Makefile中依赖使用括号

转载 作者:行者123 更新时间:2023-12-04 20:19:36 26 4
gpt4 key购买 nike

以下是我的 Makefile:

.PHONY: all

all: /Users/wu/qqaa/homepage\ 1\ 2\ 3/icons\ (a-b)
@tar cjvf 1.tar.bz2 --exclude=*~ /Users/wu/qqaa/homepage\ 1\ 2\ 3/icons\ \(a-b\)

它没有用。问题是依赖中的括号。添加 \之前 ()也没有用。错误是这样的:
make: *** No rule to make target `/Users/wu/qqaa/homepage 1 2 3/icons (a-b)', needed by `all'. Stop

目录/Users/wu/qqaa/homepage 1 2 3/icons (a-b) 确实存在。似乎不能在依赖中使用括号。这是正确的吗?或者我错过了什么?

听起来冒号也不能独立使用。

我写了一个 bash shell 脚本来备份我的系统。我用过 maketar备份。使用 make是只更新较新的文件和 tar 目录。问题是许多文件的名称都有冒号或括号,并且它们在 Makefile 中具有特殊含义。导致了上述问题。

我真的很感激任何帮助。谢谢你。

最佳答案

问题是括号标记存档成员并且似乎无法转义。通常的技巧是反斜杠转义和使用变量转义:

.PHONY : all
leftparen:=(
rightparen:=)
all: /Users/wu/qqaa/homepage\ 1\ 2\ 3/icons\ $(leftparen)a-b$(rightparen)
@tar cjvf 1.tar.bz2 --exclude=*~ "$@"

由于在这种情况下两者都不起作用,您可能不得不忍受此限制或针对 GNU make 提交错误。

关于makefile - 如何在Makefile中依赖使用括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8077010/

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