在启动时覆盖变量的不同方法

Different approach for overriding variable at make launch

启动 make 命令时覆盖变量的最佳方法是什么?

  1. make PREFIX="/new_path"
  2. PREFIX="/new_path" make

我怀疑它不完全相同,因为在第一种情况下,覆盖被指定为 make 命令的 参数 ,而在第二种情况下(如果我猜对了)我们使用 shell 定义来设置变量然后调用命令 make.

如你所说,这取决于你"best"的意思。两者适用于不同的情况。

默认情况下,makefile 变量分配优先于环境变量设置,命令行参数覆盖 makefile 变量分配。

因此,如果您想确保使用您提供的设置,那么您应该始终使用命令行:make PREFIX="new/path"。如果要为 makefile 提供默认值以供使用(如果它还没有值),则应使用环境。