Код не компилируется на другом ПК
- Войдите на сайт для отправки комментариев
Всем привет! Помогите ламерюге - с детства не прогал, но вот пришлось и ардуинку освоить, все получилось в принципе сразу. Прогу писал и заливал с домашнего настольного ПК (под W7). Собрал небольшую автоматику для климата, смонтировал на объекте, при испытаниях всплыли некоторые программные косяки в коде - надо поправить но разбирать конструкцию, отручивать все хвосты и тащить устройство с обвязкой обратно домой утомительно. Решил взять нетбук супругин, чтобы его утащить на объект и там допилить код, а не тут то было! Поставил на нетбук драйвер платы (UNO китайка), родное Arduino IDE (той же версии что и на домашнем), скопировал на ноут нужные для моих модулей библиотеки (arduino-ds1302-master, LiquidCrystal_I2C, OneWire-master, dht11), свой написанный код (который был залит на плату с домашнего ПК) - а код не компилируется! Компилятор выдает кучу ругательств якобы на ошибки в подключаемых библиотеках. Но ведь это те же самые библиотеки (я их просто скопировал), что успешно использовались на настольном ПК! Кто виноват и что делать?
текст первой ошибки давайте
Начинается вот так:
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)':
незнаю, поможет Вам или нет такой расклад:
проверьте версии IDE
у меня после обновления до версии 1.6.12 все ровно было, после обновления на трех компах ошибку компиляции выдавать начал на меге
откатил, все стало нормально
Ошибок не вижу, вижу пока ворнинги. Нехорошо, конечно, но с ними жить можно. Ошибки-то где? Это те, в тексте которых есть слово error.
Вы через переводчик их прогоните,
предполагаю, что Вам надо наверное сначала провести преобразование в новую переменную, а потом уже эту новую переменную в строку включать
Мне не надо прогонять через переводчик, я прекрасно понимаю, что там написано. Ещё раз: warning - это не ошибка, это - предупреждение, рекомендация, другими словами. Код скомпилируется и с warning, ести что. Error в приведённой выдаче компилятора - не вижу. Может, они там где-то и есть, но то, что привёл ТС - это НЕ ОШИБКИ.
Можно я тоже тут спрошу, что бы не плодить топики.
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 подключил, светодиодиком помигал. :-)
а в конце вот это:
collect2.exe: error: ld returned 1 exit status
Версия IDE та же ровно что и на ПК - ставил с одного дистриба и не обновлял на обоих устройствах. Может надо обновить?
Надо пробовать- всяко может быть, может и поможет. Попробуйте еще очистить папку temp в винде, и заново компиляцию запустить
Очень похоже на конфликт библиотек - смотрите, где лежит "first defined here" и удаляйте либо её, либо - вторую.
Но в коце есть ошибки:
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.
Что из сообщения об ошибке вам непонятно?
Сказали вам - переменная должна быть константой, если вы желаете поместить её в секцию "только для чтения".
Добавьте к определению переменной ключевое слово 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.
Если есть возможность проверьте на других платах Ардуино, например UNO или Mega
Если есть возможность проверьте на других платах Ардуино, например 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.
Arduino: 1.6.10 - уже есть Arduino: 1.6.12
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 ничего не найдено.
менеджер плат откройте и там смотрите)
менеджер плат откройте и там смотрите)
- Пасип!
Помчался разбираться... :-)
Удачки))
- Йес!!! :-)
Что сделал.
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]" - пропали.
Что из сообщения об ошибке вам непонятно? Сказали вам - переменная должна быть константой, если вы желаете поместить её в секцию "только для чтения".
Добавьте к определению переменной ключевое слово const.
- Пасип! Поправил и заработало!
Помчался кнобки топтать!
- Но я еще вернусь, как на програмаю ХЗ чего. :-) Что будет обязательно.
Еще раз: - ПА-СИП!
Проблема решилась обновлением IDE до 1.6.10. Видимо какой то блуждающий глюк. Всем спасибо за советы!
Проблема решилась обновлением IDE до 1.6.10. Видимо какой то блуждающий глюк. Всем спасибо за советы!
теперь, всё то же самое, но на третьем компьютере - я требую продолжения цирка!
Проблема решилась обновлением IDE до 1.6.10. Видимо какой то блуждающий глюк. Всем спасибо за советы!
теперь, всё то же самое, но на третьем компьютере - я требую продолжения цирка!
Кстати, я то не против проверить. Только не совсем на компьютере, а на таблетке с андроидом, у меня как раз есть такая с относительно честным USB-интерфейсом. А вот есть ли толковая IDE под андроид?