2015-08-27 5 views
3

Моя задача - передать несколько аргументов одному из моих исполняемых двоичных файлов. Например, у меня есть бинарный файл, который занимает 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} 
+0

Список параметров необходимо сгруппировать. аналогично -Dinput = "1 2 3 4 5 6" Однако make-файл должен создавать вещи, такие как исполняемый файл, чтобы не выполнять исполняемый файл. – user3629249

+0

Группировка аргументов выполняется оболочкой. Сделайте только то, что передает оболочка. Обратная косая черта - это один из способов (как правило, наименее желательный способ) сбрасывания символов. Если вам нужно набрать более одной обратной косой черты, используйте вместо нее кавычки, как в принятом ответе. Обратите внимание, что в строке, которая выполняет программу, присутствует второй уровень оболочки. Если вам нужно передать «многословную фразу» в качестве единственного аргумента в программе (а также некоторые другие аргументы), вам придется больше работать. –

ответ

2

Просто поместите аргументы в цитаты.

make INPUT="1 2 3 4 5 6" 
Смежные вопросы