Двойное декларирование

В данный форум Вы можете заносить найденные Вами ошибки.При добавления ошибки пожалуйста приложите файлик error.log который находится в папке с установленной программой
Ответить
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей

Двойное декларирование

Сообщение RedSky »

При компиляции ошибка:   pr48.ino:313:5: error: redeclaration of 'int _tempVariable_int'
                                         pr48.ino:245:5: error: 'int _tempVariable_int' previously declared here

Появляется при использовании стека или детектора изменения числа в больших проектах.
Если убрать одну строку с int _tempVariable_int работает нормально.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Двойное декларирование

Сообщение Boroda »

Ну тут все предельно ясно!
Пользователь 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
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Двойное декларирование

Сообщение support »

И второй вопрос, у Вас какая версия программы? такая ошибка наблюдалась в старых версиях. Я попробовал открыть проект в версии 2.3.0 (самая ранняя из установленных у меня) и никаких проблем в при компиляции не возникло. Хотя есть предупреждение что осталось мало свободной памяти, и возможна нестабильная работа.
Автор программы FLProg.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Двойное декларирование

Сообщение Boroda »

support, я в 2.3.1 проверял. В прикрепленной программе в блоке T=00^00 переменная объявлена в секции Loop() (не имеет уникального идентификатора) и такая же переменная используется в стандартном массиве.

П.С.
RedSky писал(а):Появляется при использовании стека или детектора изменения числа в больших проектах.
Это работает нормально.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2299
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир

Двойное декларирование

Сообщение rw6cm »

Boroda писал(а):Пользователь rw6cm видимо использовал в своем Пользовательском Блоке (ПБ) T=00^00 переменную, которая используется в стандартных блоках FLProg. А именно: _tempVariable_int;
Прозевал этот момент, спасибо за подсказку.
RedSky, замените блок на этот.
Вечером в блоках пользователей обновлю.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей

Двойное декларирование

Сообщение RedSky »

Спасибо, проверил - работает.
Версия последняя. IDE 1.6.3. В 1.8 у меня не работает кириллица на 5110.
tok17
Рядовой
Сообщения: 23
Зарегистрирован: 30 апр 2016, 09:46
Откуда: Южно-Сахалинск
Имя: Александр
Контактная информация:

Двойное декларирование

Сообщение tok17 »

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
Откуда: Днепропетровск
Имя: Алексей

Двойное декларирование

Сообщение RedSky »

Такое происходит при копировании и вставке из другого проекта. Нужно удалить и заново создать блоки поиска и опроса DS18B20.
Ответить

Вернуться в «Новые»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей