command-line - 命令行参数 make 文件

标签 command-line makefile command-line-arguments

所以我知道如何从命令行创建变量并存储值。

但通常情况下,我会这样输入命令:make run VAR="abc",VAR 将被分配新值“abc”

但是,如果我想做这样的事情 VAR="abc"make run,我该如何更改我的 make 文件?现在,如果我运行这个,VAR 仍然具有在 make 文件中创建时的初始值。

这是我的制作文件:

VAR = ""

.PHONY : build run

build : program.c
   gcc -o prog -g program.c

run : build
   ./prog $(VAR)

最佳答案

当您编写 VAR = "" 时,您将覆盖 VAR 可能拥有的任何值(例如来自环境或命令行的值)。您可以改用条件赋值,如下所示:

VAR ?= ""

只有在尚未设置时才会设置VAR。它相当于例如

ifeq ($(origin VAR), undefined)
  VAR = ""
endif

关于command-line - 命令行参数 make 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31373921/

相关文章:

command-line - 如何使用命令将挂起的更改列表文件移动到默认值

linux - 通读所有文件并在 Linux 中应用命令

makefile - 如何强制GNU Make不并行构建配方?

ruby-on-rails - ruby : Pass array in command line argument

正确的 optargs 处理非可选参数 (c)

java - 如何将环境变量传递给jar文件?

command-line - 使用 7zip 命令行实用程序解密加密的 7zip 存档文件

java - 我需要在 Java 的特定工作目录中执行命令行程序

makefile - makefile 中处理组件的顺序

c++ - 将 class.h 和 class.cpp 添加到 makefile