c - 将变量从终端传递到 makefile

标签 c linux vim makefile

我是 Linux Mint 的新手,想知道是否可以在我的 make 文件中创建一个变量,然后当我调用函数时(不确定你会在这里调用它),例如运行或全部这个变量。我基本上想做的是从终端我想做这样的事情:

make open(variable)

然后将该变量传递到 makefile 中,类似于:

all:

    vim $(filename)

将接收它并在 Vim 中打开文件。

最佳答案

在您的 vim 示例中,您需要:

make all filename=the-file.txt

请注意,假设 all 是您的 Makefile 中的第一个目标,则可以省略它。基本上语法是 variable=value

下面的 Makefile 可以更好地证明这一点:

echo:
    echo $(MY_ECHO)

如果您这样做:使 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"

关于c - 将变量从终端传递到 makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31622285/

相关文章:

vim : expand in :h

c++ - 海湾合作委员会警告 "dereferencing type-punned pointer will break strict-aliasing rules"

串口

linux - 内存映射 i/0 在 linux 中工作

r - 如何提高在 Windows 10 上运行 R 脚本的基于 Linux 的 Docker 桌面容器的性能?

Java System.out.print();,在 Eclipse 上的行为与在 Eclim 上的行为不同

c++ - Vim YouCompleteMe clang 不完成 C++11 'auto' 变量

C -> sizeof 字符串始终为 8

c - 使用OpenMP计算PI值

c - 无法从文本文件中读取数据。