我是Linux Mint的新手,想知道是否有可能在我的make文件中我可以创建一个变量然后当我调用该函数时(不知道你会在这里调用它),例如run或所有这个变量。我基本上想要做的是从终端我想做这样的事情:
make open(variable)
然后将该变量传递给makefile,其中包括:
all:
vim $(filename)
会收到它并在Vim中打开文件。
答案 0 :(得分:3)
给出你的示例makefile,你可以从命令行调用make
:
make filename=/tmp/my/file
然后/tmp/my/file
将在vim
中打开。
答案 1 :(得分:3)
在vim示例中,您需要:
make all filename=the-file.txt
请注意,假设它是Makefile中的第一个目标,可以省略all
。语法基本上是variable=value
使用以下Makefile可以更好地证明这一点:
echo:
echo $(MY_ECHO)
若:make MY_ECHO=hello
变量MY_ECHO
将为字符串hello
。
如何指定一个或多个目标与不使用变量时相同,只需要确保variable=value
没有任何空格,因此要知道它是变量还是目标。例如,如果你这样做:
make MY_ECHO= asdf
您将收到错误:
make: *** No rule to make target 'asdf'. Stop.
因为make会认为asdf
是目标。如果您想使用带空格的值,则需要用引号括起来:
make MY_ECHO="hello world"