#python-3.x #makefile #compilation #stdin
#python-3.x #makefile #Сборник #стандартный ввод
Вопрос:
У меня есть программа, в которой я пытаюсь вызвать следующую команду:
make run {FILE} e.g filename.txt
Как я могу создать свой Makefile, чтобы он мог выполнять эту программу и принимать любое имя файла через стандартный файл.
Мой Makefile выглядит следующим образом:
run:
python execute.py --filename {ANY FILENAME}
Комментарии:
1. Однако этот вопрос не имеет ничего общего с STDIN.
Ответ №1:
Аргументы make
являются целевыми. В вашем первоначальном примере нет особой связи между run
и {FILE}
. Если вы хотите принудительно ввести run
префикс, он должен быть частью целевого имени, а не разделяться пробелом:
run-%:
python execute.py --filename $*
Комментарии:
1. Спасибо, Карл. Я продолжаю получать (make: *** Нет правила для выполнения целевого «запуска». Стоп.) и если я удалю «-%:» из команды run, которую я получаю (make: ничего не нужно делать для data.txt ) data.txt это мое входное имя файла
2. Вам нужно использовать
make run-data.txt
.3. Итак, мы никак не можем получить команду
make run run-data.txt
для запуска скрипта python без получения этой ошибки? есть ли обходной путь?4. Это просто не так
make
работает. Если вы хотите проанализировать аргументы командной строки, вместо этого напишите скрипт.