Проблемы после перехода на ide 1.6.7

avdlex
Offline
Зарегистрирован: 14.01.2016

Перестали компилиться скетчи. Основной косяк - раньше не имело значения расположение процедур по тексту. Всегда вспомогательные процедурки пихал в конец, и все компилилось нормально в 1.6.2

Теперь же 1.6.7 пишет error: 'checkit' was not declared in this scope

А она есть, но только после loop() в котором используется.

Все бы ничего, но у меня есть громоздкие проекты где скетч вообще на файлы(закладки) разбит. Соответственно не собирается.

Ткните носом балбеса - как исправить проблемку ?

vde69
Offline
Зарегистрирован: 10.01.2016

если разработчики отказались от двух проходной компиляции (которая и позволяла пихать все куда угодно) то должны были ввести декларативное описание описание (типа forvard в дельфях).

короче читай мануал к последнему релизу....

зы

я вообще никогда не спешу, сейчас 1.5.2 и обновлятся не вижу смысла...

 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

О! Прогресс. Наконец-то, похоже они отказались от "автоматического" переобъявления функций скетча. Это - радует, надо будет попгобовать.

Сделайте *.h файлик, в который поместите все объявления всех ваших "скетчевых" функций, типа так:

было:

void loop(){
// тут реализация .. в которой где-то есть вызов:
  myFunc(123);
}

// и далее реализация:

void myFunc(int param)
{
// тело функции
}

Надо сделать так:

// файл myLib.h теперь содержит:

void myFunc(int);

// в скетче должно стать так в первой строке:

#include "myLib.h"

Если у вас в параметрах используются свои определения типов, классов и т.п. - вынесите их в этот же файлик ПЕРЕД объявлением ваших функций. Должно стать "ровно".

avdlex
Offline
Зарегистрирован: 14.01.2016

Прокатило. Правда я без .h обошелся.

Вообщем объявил в переменных void checkit(); и все скомпилилось.

Интересно, а в чем плюшки данного решения ? Как-то с компиляцией легче что-ли ?

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012
trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Тоже заметил дикое неудобство когда ошибка  в скетче состоящем из нескольких файлов.
Выдаёт ошибку в файле с именем таким-то, сторока номер 167........
А в  этом файле всего 20 строк......