реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Как передать значение из makefile в основную программу?
kurtis
сообщение Apr 6 2009, 14:55
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Помогите, не могу добиться чтоб значение из makefile передавалось в основную программу. Использую WinAVR-20081205.
Делаю так
В makefile пишу строчку
Код
CTRL_MRTP3 = 1
далее передаю через флаг -D компилятора
Код
CFLAGS  = -g3 -s $(OPT) $(CSTD) $(CWARN) \
-DF_CPU=$(F_CPU)UL \
-DCTRL_MRTP3=$(CTRL_MRTP3)\
и в основной программе делаю такую проверку
Код
      #if CTRL_MRTP3
        #error "значение передано"  // условие 1
      #else
        #error "значение НЕ передано"   // условие 2
      #endif
и независимо от значений CTRL_MRTP3 указанных в makefile, всегда выполняется 2-е условие.
Если же в проверке я меняю CTRL_MRTP3 на F_CPU, то выполняется 1-е условие. Т.е. F_CPU передается, а CTRL_MRTP3 почему-то нет!
В чем может быть проблема?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 6 2009, 15:18
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Код
ADD_COMPILE_FLAGS  = -DCTRL_MRTP3=1
ADD_COMPILE_FLAGS += -DCTRL_MRTP21=812
.....
CFLAGS += $(ADD_COMPILE_FLAGS)
CPPFLAGS += $(ADD_COMPILE_FLAGS)

На мой взгляд так писть нагляднее...
Код
#if   (CTRL_MRTP3==1)
......
#elif (CTRL_MRTP3==2)
......
endif


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
kurtis
сообщение Apr 6 2009, 15:35
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Да, Ваш вариант работает именно так как нужно!
Спасибо! smile.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 15:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01353 секунд с 7
ELECTRONIX ©2004-2016