Код не компилируется на другом ПК

Voffcka
Offline
Зарегистрирован: 11.08.2016

Всем привет! Помогите ламерюге - с детства не прогал, но вот пришлось и ардуинку освоить, все получилось в принципе сразу. Прогу писал и заливал с домашнего настольного ПК (под W7). Собрал небольшую автоматику для климата, смонтировал на объекте, при испытаниях всплыли некоторые программные косяки в коде - надо поправить но разбирать конструкцию, отручивать все хвосты и тащить устройство с обвязкой обратно домой утомительно. Решил взять нетбук супругин, чтобы его утащить на объект и там допилить код, а не тут то было! Поставил на нетбук драйвер платы (UNO китайка), родное Arduino IDE (той же версии что и на домашнем), скопировал на ноут нужные для моих модулей библиотеки (arduino-ds1302-master, LiquidCrystal_I2C, OneWire-master, dht11), свой написанный код (который был залит на плату с домашнего ПК) - а код не компилируется! Компилятор выдает кучу ругательств якобы на ошибки в подключаемых библиотеках. Но ведь это те же самые библиотеки (я их просто скопировал), что успешно использовались на настольном ПК! Кто виноват и что делать? 

toc
Offline
Зарегистрирован: 09.02.2013

текст первой ошибки давайте

Voffcka
Offline
Зарегистрирован: 11.08.2016

Начинается вот так:

Arduino: 1.6.9 (Windows 7), Плата:"Arduino/Genuino Uno"

sketch\iarduino_RTC\iarduino_RTC.cpp: In member function 'void iarduino_RTC::gettime()':

sketch\iarduino_RTC\iarduino_RTC.cpp:58:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

void iarduino_RTC::gettime(){gettime("");}

^

libraries\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp.o: In function `LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char, unsigned char, unsigned char)':

 
и так далее, довольно много там красных строк в логе 
pwal
Offline
Зарегистрирован: 17.04.2016

незнаю, поможет Вам или нет такой расклад:

проверьте версии IDE

у меня после обновления до версии 1.6.12 все ровно было, после обновления на трех компах ошибку компиляции выдавать начал на меге

откатил, все стало нормально

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ошибок не вижу, вижу пока ворнинги. Нехорошо, конечно, но с ними жить можно. Ошибки-то где? Это те, в тексте которых есть слово error.

pwal
Offline
Зарегистрирован: 17.04.2016

Вы через переводчик их прогоните, 

 
warning: deprecated conversion from string constant to 'char*


РУССКИЙ
 
Предупреждение: не рекомендуется использовать преобразование из строки 
pwal
Offline
Зарегистрирован: 17.04.2016

предполагаю, что Вам надо наверное сначала провести преобразование в новую переменную, а потом уже эту новую переменную в строку включать

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Мне не надо прогонять через переводчик, я прекрасно понимаю, что там написано. Ещё раз: warning - это не ошибка, это - предупреждение, рекомендация, другими словами. Код скомпилируется и с warning, ести что. Error в приведённой выдаче компилятора - не вижу. Может, они там где-то и есть, но то, что привёл ТС - это НЕ ОШИБКИ.

di_mot
Offline
Зарегистрирован: 12.08.2016

Можно я тоже тут спрошу, что бы не плодить топики.

IDE вер. 1.6.10  Win XP.

Ситуация похожая.

Выдает сначала варнинги по типу:

UTFT_Demo_320x240_Serial.ino:52:68: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("* Universal Color TFT Display Library *", CENTER, 1);

 

Но в коце есть ошибки:

DefaultFonts.c:21:14: error: variable 'SmallFont' must be const in order to be put into read-only section by means of '__attribute__((progmem))'

 fontdatatype SmallFont[1144] PROGMEM={         
 

PS: Nano подключил, светодиодиком помигал. :-)

Voffcka
Offline
Зарегистрирован: 11.08.2016
Весь лог не привел, там одинаковые жалобы на разные строки кода библиотек "..multiple definition of.." и "..first defined here.."

а в конце вот это: 

collect2.exe: error: ld returned 1 exit status

exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.

Версия IDE та же ровно что и на ПК - ставил с одного дистриба и не обновлял на обоих устройствах. Может надо обновить?

pwal
Offline
Зарегистрирован: 17.04.2016

Надо пробовать- всяко может быть, может и поможет. Попробуйте еще очистить папку temp  в винде, и заново компиляцию запустить

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Voffcka пишет:

 "..multiple definition of.." и "..first defined here.."

Очень похоже на конфликт библиотек - смотрите, где лежит "first defined here" и удаляйте либо её, либо - вторую.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

di_mot пишет:

Но в коце есть ошибки:

DefaultFonts.c:21:14: error: variable 'SmallFont' must be const in order to be put into read-only section by means of '__attribute__((progmem))'

 fontdatatype SmallFont[1144] PROGMEM={         

Что из сообщения об ошибке вам непонятно? Сказали вам - переменная должна быть константой, если вы желаете поместить её в секцию "только для чтения".

Добавьте к определению переменной ключевое слово const.

di_mot
Offline
Зарегистрирован: 12.08.2016

DIYMan пишет:

Что из сообщения об ошибке вам непонятно?

Сказали вам - переменная должна быть константой, если вы желаете поместить её в секцию "только для чтения".

Добавьте к определению переменной ключевое слово const.

Мне не понятно, почему это вылезает на компиляции примера(!) UTFT_Demo_320x240_Serial из библиотеки UTFT.

Пробовал разные примеры из библиотек, так и "базовые" примеры.

"Проверка" ReadAnalogVoltage дает такую ошибку:

Arduino: 1.6.10 (Windows XP), Плата:"Arduino Nano, ATmega328"

collect2.exe: error: ld returned 5 exit status

exit status 1
Ошибка компиляции для платы Arduino Nano.
 

pwal
Offline
Зарегистрирован: 17.04.2016

Если есть возможность проверьте на других платах Ардуино, например UNO или Mega

di_mot
Offline
Зарегистрирован: 12.08.2016

pwal пишет:

Если есть возможность проверьте на других платах Ардуино, например UNO или Mega

Заменой через "Инструменты -> Платы" получаю при проверке:

Arduino: 1.6.10 (Windows XP), Плата:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

F:\Arduino\libraries\UTFT\DefaultFonts.c:21:14: error: variable 'SmallFont' must be const in order to be put into read-only section by means of '__attribute__((progmem))'

 fontdatatype SmallFont[1144] PROGMEM={         

              ^

F:\Arduino\libraries\UTFT\DefaultFonts.c:125:14: error: variable 'BigFont' must be const in order to be put into read-only section by means of '__attribute__((progmem))'

 fontdatatype BigFont[3044] PROGMEM={

              ^

F:\Arduino\libraries\UTFT\DefaultFonts.c:234:14: error: variable 'SevenSegNumFont' must be const in order to be put into read-only section by means of '__attribute__((progmem))'

 fontdatatype SevenSegNumFont[2004] PROGMEM={

              ^

exit status 1
Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560.
 

pwal
Offline
Зарегистрирован: 17.04.2016

Arduino: 1.6.10  - уже есть Arduino: 1.6.12

di_mot
Offline
Зарегистрирован: 12.08.2016

pwal пишет:

Arduino: 1.6.10  - уже есть Arduino: 1.6.12

- Где?....

На https://www.arduino.cc/en/Main/Software ->  Arduino: 1.6.10 (смайлик шмыгая носом)

Гуля ответил: По запросу 1.6.12 site:http://www.arduino.cc ничего не найдено.

pwal
Offline
Зарегистрирован: 17.04.2016

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

di_mot
Offline
Зарегистрирован: 12.08.2016

pwal пишет:

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

 - Пасип!

Помчался разбираться... :-)

pwal
Offline
Зарегистрирован: 17.04.2016

Удачки))

di_mot
Offline
Зарегистрирован: 12.08.2016

- Йес!!! :-)

Что сделал.

1. Деинсталировал установку arduino-1.6.10-windows.exe

2. Скачал и распаковал куда мне надо arduino-1.6.10-windows.zip

3. Посмотрел в "Менеджере плат" 1.6.12 INSTALLED

4. Пропробовал примеры из "Базовых", которые до этого не компилировались. Всё Ок!

Ошибки "deprecated conversion from string constant to 'char*' [-Wwrite-strings]" - пропали.

DIYMan пишет:

Что из сообщения об ошибке вам непонятно? Сказали вам - переменная должна быть константой, если вы желаете поместить её в секцию "только для чтения".

Добавьте к определению переменной ключевое слово const.

- Пасип! Поправил и заработало!

 

Помчался кнобки топтать!

- Но я еще вернусь, как на програмаю ХЗ чего. :-) Что будет обязательно.

Еще раз: - ПА-СИП!

Voffcka
Offline
Зарегистрирован: 11.08.2016

Проблема решилась обновлением IDE до 1.6.10. Видимо какой то блуждающий глюк. Всем спасибо за советы!

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Voffcka пишет:

Проблема решилась обновлением IDE до 1.6.10. Видимо какой то блуждающий глюк. Всем спасибо за советы!

теперь, всё то же самое, но на третьем компьютере - я требую продолжения цирка!

Voffcka
Offline
Зарегистрирован: 11.08.2016

Клапауций 232 пишет:

Voffcka пишет:

Проблема решилась обновлением IDE до 1.6.10. Видимо какой то блуждающий глюк. Всем спасибо за советы!

теперь, всё то же самое, но на третьем компьютере - я требую продолжения цирка!

Кстати, я то не против проверить. Только не совсем на компьютере, а на таблетке с андроидом, у меня как раз есть такая с относительно честным USB-интерфейсом. А вот есть ли толковая IDE под андроид?