2015-10-11 6 views
0

Во многих Makefiles я видел следующую переменную структуру назначения:Простой GNU сделать обратную косую черту и назначение переменной

TARGETDIR=somedirectory 

OBJS = \ 
"tab" $(TARGETDIR)/main.o 

Я считаю, это значит поместить объектный файл в «somedirectory» и назовите его main.o.

Мое понимание обратного слэша, используемого выше, заключается в том, что оно расширяет длинную линию до строки ниже. Вышеупомянутая не длинная строка, так почему обратная косая черта используется для создания многострочного выражения? Будет ли выше, имеют те же результаты, как:

OBJS = $(TARGETDIR)/main.o 

Спасибо Том

ответ

0

Да, результат тот же. make использует пробел (-ы) как разделитель между элементами в переменных списка, а \ newline считается нулевым символом, поэтому он не мешает чему-либо. Сказав, что вкладки имеют зарезервированное значение в других местах в make-файлах, поэтому я бы не стал размещать там вкладку.

После этого, ваш вопрос сводится к тому, "Программист не имеют сделать это, так почему сделал они? Ответ, конечно, «потому что они могут».

Если вам нужна возможная причина, представьте, что программист может добавить дополнительные строки (цели) позже, а стилистически предпочитает, чтобы первая строка не имела другого отступа от других. Таким образом, они поставили его на свою линию с самого начала. Таким образом, сохранение нескольких секунд реорганизации позже!

И, на самом деле, я знаю, что мы используем списки с исходными файлами с \ новыми линиями и пробелами. Опять же, это просто стилистический выбор. Используйте то, что вам нравится!