首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何阻止GNU在MAKEFILE_LIST中扩展美元标志?

如何阻止GNU在MAKEFILE_LIST中扩展美元标志?
EN

Stack Overflow用户
提问于 2017-04-18 07:26:20
回答 1查看 245关注 0票数 3

正在运行

代码语言:javascript
运行
复制
echo -e "all:\n\techo '\$(value MAKEFILE_LIST)'" > /tmp/foo\$bar.mk
make -f /tmp/foo\$bar.mk

将打印

代码语言:javascript
运行
复制
echo ' /tmp/fooar.mk'
/tmp/fooar.mk

从这里我们可以看到,MAKEFILE_LIST包含扩展的文件名。

如何获得Makefile的正确名称(包括美元符号)?

我的版本: GNU Make 4.2.1。

我的动机:实际上,美元符号是通往Makefile之路的一部分。我不能重命名该路径,因为它来自将运行make的人必须使用的Samba共享。

更新

作为http://savannah.gnu.org/bugs/?50823提交到上游。

更新

建议的补丁在https://savannah.gnu.org/bugs/?50823#comment1上可用。

EN

回答 1

Stack Overflow用户

发布于 2017-04-18 08:01:18

这是一次黑客攻击,但无论如何:您可以定义make变量b=$$b

代码语言:javascript
运行
复制
$ cat '/tmp/foo$bar.mk'
all:
        echo '$(value MAKEFILE_LIST)'
$ gmake -f /tmp/foo\$bar.mk b='$$b'
echo ' /tmp/foo$bar.mk'
 /tmp/foo$bar.mk

这并不能阻止扩张,但实际上却是不可行的.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43466130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档