【发布时间】:2021-09-20 04:45:10
【问题描述】:
假设我有一个使用 make 安装的 python 项目。我希望能够在不先安装项目的情况下运行该项目。所以我创建了这个 make 规则:
run:
@echo "Running projectname"
@PYTHONPATH=${PYTHONPATH}:$(abs_srcdir)/..; ./projectname
./projectname 运行一个简单的 python 脚本来设置和运行项目,但这在这里并不重要。像这样,我可以简单地在项目的根文件夹中执行make run 来执行和测试我的应用程序,它工作得非常好。现在,我想将一些命令行参数传递给程序。我尝试了make run --help,它刚刚打印了make 的帮助文本。运行make run -- --help打印
Running projectname
make: *** No rule to make target '--help'. Stop.
应用程序正在运行,在我退出后,make 尝试执行目标 --help。
现在,我如何通过make 将--help 参数传递给我的应用程序?
【问题讨论】:
-
这不是
make的用途。只需编写一个简单的包装脚本,适当地设置PYTHONPATH,然后将它自己的参数传递给projectname。 -
简短回答:你不能。 Make 的命令行由 make 解释。它不会传递给运行程序。如答案中所述,您可以将make变量设置为某个值,然后在makefile中使用该变量,因为make会在其命令行中解释变量赋值。
标签: makefile command-line arguments sh command-line-arguments