Моя задача - передать несколько аргументов одному из моих исполняемых двоичных файлов. Например, у меня есть бинарный файл, который занимает 6 аргументов, поэтому она отлично работает, когда я типа:передать несколько аргументов из makefile
./a.out 1 2 3 4 5 6
Я хочу сделать то же самое с помощью Makefile, так что, когда я печатаю make INPUT=1 2 3 4 5 6
он должен выполнить a.out
со всеми шесть аргументов в INPUT. я могу это сделать, если я передавать аргументы с экранирующих символов, таких как:
make INPUT=1\ 2\ 3\ 4\ 5\ 6
, но есть ли способ сделать это выполнить, как
make INPUT=1 2 3 4 5 6
содержание Makefile:
@gcc prime.c
@./a.out ${INPUT}
Список параметров необходимо сгруппировать. аналогично -Dinput = "1 2 3 4 5 6" Однако make-файл должен создавать вещи, такие как исполняемый файл, чтобы не выполнять исполняемый файл. – user3629249
Группировка аргументов выполняется оболочкой. Сделайте только то, что передает оболочка. Обратная косая черта - это один из способов (как правило, наименее желательный способ) сбрасывания символов. Если вам нужно набрать более одной обратной косой черты, используйте вместо нее кавычки, как в принятом ответе. Обратите внимание, что в строке, которая выполняет программу, присутствует второй уровень оболочки. Если вам нужно передать «многословную фразу» в качестве единственного аргумента в программе (а также некоторые другие аргументы), вам придется больше работать. –