Я хочу вызвать make-файл следующим образом: make uj LOCATION = my_room и показать my_room в распечатках.Получение аргумента makefile в исходном коде C
Например:
print(" LOCATION is %s \n", LOCATION);
Если печать РАСПОЛОЖЕНИЕ является my_room. Если параметр LOCATION не задан, он должен печатать неопределенные.
Я пробовал со следующим. В моей Makefile:
ifndef LOCATION
LOCATION = "undefined"
endif
CFLAGS += -DLOCATION=$(LOCATION)
А затем вызвать вышеуказанную функцию печати, но это бросает ошибку компиляции. Я что-то упускаю. Вы можете помочь?
Отредактировано: Добавлена ошибка во время компиляции.
In file included from ../../uJ/cerberOS_BSP.h:4:0,
from ../../uJ/main_upnp.c:3:
../../uJ/main_upnp.c: In function ‘printDiagnostics’:
../../uJ/cerberOS_debug.h:15:59: error: expected expression before ‘)’ token
#define print(FORMAT,args...) printf_P(PSTR(FORMAT),##args)
^
../../uJ/main_upnp.c:35:2: note: in expansion of macro ‘print’
print(" LOCATION (as s) is %s \n", LOCATION);
Что вы подразумеваете под «ошибками»? Если у вас есть ошибки в построении, включите журнал сборки в орган вопроса (полностью, полный и неотредактированный). –
Самый простой способ отладки - просто передать свой источник через препроцессор и посмотреть, что создается в этом месте. – StoryTeller
Извинения, добавлена ошибка во время компиляции. –