在启动时覆盖变量的不同方法
Different approach for overriding variable at make launch
启动 make
命令时覆盖变量的最佳方法是什么?
make PREFIX="/new_path"
PREFIX="/new_path" make
我怀疑它不完全相同,因为在第一种情况下,覆盖被指定为 make
命令的 参数 ,而在第二种情况下(如果我猜对了)我们使用 shell 定义来设置变量然后调用命令 make
.
如你所说,这取决于你"best"的意思。两者适用于不同的情况。
默认情况下,makefile 变量分配优先于环境变量设置,命令行参数覆盖 makefile 变量分配。
因此,如果您想确保使用您提供的设置,那么您应该始终使用命令行:make PREFIX="new/path"
。如果要为 makefile 提供默认值以供使用(如果它还没有值),则应使用环境。
启动 make
命令时覆盖变量的最佳方法是什么?
make PREFIX="/new_path"
PREFIX="/new_path" make
我怀疑它不完全相同,因为在第一种情况下,覆盖被指定为 make
命令的 参数 ,而在第二种情况下(如果我猜对了)我们使用 shell 定义来设置变量然后调用命令 make
.
如你所说,这取决于你"best"的意思。两者适用于不同的情况。
默认情况下,makefile 变量分配优先于环境变量设置,命令行参数覆盖 makefile 变量分配。
因此,如果您想确保使用您提供的设置,那么您应该始终使用命令行:make PREFIX="new/path"
。如果要为 makefile 提供默认值以供使用(如果它还没有值),则应使用环境。