2015-07-13 3 views
2

Так что я знаю, как создавать переменные и хранить значения из командной строки.аргументы командной строки делают файл

Но, как правило, я напечатал бы моя команда так: сделать запустить VAR = «ABC», и вар будет присвоено новое значение «абв»

Однако, если я хочу сделать что-то вроде этого VAR = «abc» make run, как я могу изменить файл make? Прямо сейчас, если я запустил это, VAR все еще имеет начальное значение, когда оно было создано в файле make.

Это мой макияж файл:

VAR = "" 

.PHONY : build run 

build : program.c 
    gcc -o prog -g program.c 

run : build 
    ./prog $(VAR) 

ответ

2

Когда вы пишете VAR = "", вы перезапись любого значения VAR мог бы иметь (например, от окружающей среды, или в командной строке). Вы можете использовать условное назначение вместо этого, который выглядит следующим образом:

VAR ?= "" 

Это устанавливает VAR только если он не был установлен уже. Это эквивалентно, например,

ifeq ($(origin VAR), undefined) 
    VAR = "" 
endif 
+0

Информация о производителе руководство ссылка обсуждает '=' (и дает, что эквивалентный код) в [Две разновидности переменных] (HTTP: //www.gnu. орг/программное обеспечение/сделать/ручной/make.html # Ароматизаторы). –

+0

Кроме того, только для записи 'VAR =" "' в make не устанавливается 'VAR' в пустую строку, она устанавливает значение' '' '. Это строго менее полезно, чем пустая строка, чтобы сделать себя и поэтому действительно не имеет какой-либо полезной цели и, скорее всего, просто будет полностью отброшена. –

0
VAR = ${VAR} 

, если я правильно помню

Смежные вопросы