При компиляции ошибка: pr48.ino:313:5: error: redeclaration of 'int _tempVariable_int'
pr48.ino:245:5: error: 'int _tempVariable_int' previously declared here
Появляется при использовании стека или детектора изменения числа в больших проектах.
Если убрать одну строку с int _tempVariable_int работает нормально.
Двойное декларирование
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
Двойное декларирование
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Двойное декларирование
Ну тут все предельно ясно!
Пользователь rw6cm видимо использовал в своем Пользовательском Блоке (ПБ) T=00^00 переменную, которая используется в стандартных блоках FLProg. А именно: _tempVariable_int;
Вот и возникает конфликт ПБ блока и массива!
А объясняется такой конфликт просто: переменные ПБ, объявленные в секции Loop(), не имеют уникального идентификатора. Если бы он эту переменную объявил в секции Declare, тогда FLProg присвоила бы ей уникальный идентификатор.
Поставьте два блока T=00^00 и получите еще кучу ошибок:
int _tempVariable_int;
bool _tmp2 = _changeNumber2_Out_938015_1;
............
int _tempVariable_int;
bool _tmp2 = _changeNumber2_Out_938015_3;
Вывод: переменные ПБ нужно объявлять только в секции Declare!!!
Пользователь rw6cm видимо использовал в своем Пользовательском Блоке (ПБ) T=00^00 переменную, которая используется в стандартных блоках FLProg. А именно: _tempVariable_int;
Вот и возникает конфликт ПБ блока и массива!
А объясняется такой конфликт просто: переменные ПБ, объявленные в секции Loop(), не имеют уникального идентификатора. Если бы он эту переменную объявил в секции Declare, тогда FLProg присвоила бы ей уникальный идентификатор.
Поставьте два блока T=00^00 и получите еще кучу ошибок:
int _tempVariable_int;
bool _tmp2 = _changeNumber2_Out_938015_1;
............
int _tempVariable_int;
bool _tmp2 = _changeNumber2_Out_938015_3;
Вывод: переменные ПБ нужно объявлять только в секции Declare!!!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Boroda 20 фев 2017, 22:24, всего редактировалось 1 раз.
- support
- Супермодератор
- Сообщения: 1902
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Контактная информация:
Двойное декларирование
И второй вопрос, у Вас какая версия программы? такая ошибка наблюдалась в старых версиях. Я попробовал открыть проект в версии 2.3.0 (самая ранняя из установленных у меня) и никаких проблем в при компиляции не возникло. Хотя есть предупреждение что осталось мало свободной памяти, и возможна нестабильная работа.
Автор программы FLProg.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Двойное декларирование
support, я в 2.3.1 проверял. В прикрепленной программе в блоке T=00^00 переменная объявлена в секции Loop() (не имеет уникального идентификатора) и такая же переменная используется в стандартном массиве.
П.С.
П.С.
Это работает нормально.RedSky писал(а):Появляется при использовании стека или детектора изменения числа в больших проектах.
Двойное декларирование
Прозевал этот момент, спасибо за подсказку.Boroda писал(а):Пользователь rw6cm видимо использовал в своем Пользовательском Блоке (ПБ) T=00^00 переменную, которая используется в стандартных блоках FLProg. А именно: _tempVariable_int;
RedSky, замените блок на этот.
Вечером в блоках пользователей обновлю.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
Двойное декларирование
Спасибо, проверил - работает.
Версия последняя. IDE 1.6.3. В 1.8 у меня не работает кириллица на 5110.
Версия последняя. IDE 1.6.3. В 1.8 у меня не работает кириллица на 5110.
-
- Рядовой
- Сообщения: 23
- Зарегистрирован: 30 апр 2016, 09:46
- Откуда: Южно-Сахалинск
- Имя: Александр
- Контактная информация:
Двойное декларирование
support писал(а):такая ошибка наблюдалась в старых версиях. Я попробовал открыть проект в версии 2.3.0 (самая ранняя из установленных у меня) и никаких проблем в при компиляции не возникло. Хотя есть предупреждение что осталось мало свободной памяти, и возможна нестабильная работа.
У меня так же происходило. Первый раз не разобрался в чем причина, перенес все блоки в новый проект, ошибка с дублированием исчезла.
Сейчас возникла на Меге. Свободной памяти много, версия 2,3,1
Вычищаю лишние строки в ручную:
1. Servo _SM1;
OneWire _ow10(10);
OneWire _ow9(9);
OneWire _ow10(10);
OneWire _ow9(9);
2. переменная перестала дублироваться... не понятно...
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
Двойное декларирование
Такое происходит при копировании и вставке из другого проекта. Нужно удалить и заново создать блоки поиска и опроса DS18B20.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей