DCf77 compiler "meckereien"

Hallo, bin ziemlich neu und wollte mir heute ne Funkuhr gönnen.
Dazu hab ich aus dem Netz ide DCF77 libraries vom Githug geholt.

// include the library code:
#include <LiquidCrystal.h>
#include <DCF77.h>
#include <Time.h>

compilieren unter ubuntu 13.10 IDE 1.0.5. an nem Arduino Mega liefert mir:
(ich lasse bewußt mal die ganze ausgabe des terminals dran, dir richtigen Fehlermeldungen kommen etwas weiter unten)

/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega2560 -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino/cores/arduino -I/usr/share/arduino/hardware/arduino/variants/mega -I/usr/share/arduino/libraries/LiquidCrystal -I/usr/share/arduino/libraries/DCF77 -I/usr/share/arduino/libraries/Time /tmp/build2850694295725593229.tmp/Temp_und_hell_auf_lcd_display_dem16216_mit_lm35.cpp -o /tmp/build2850694295725593229.tmp/Temp_und_hell_auf_lcd_display_dem16216_mit_lm35.cpp.o
Using previously compiled: /tmp/build2850694295725593229.tmp/LiquidCrystal/LiquidCrystal.cpp.o
Using previously compiled: /tmp/build2850694295725593229.tmp/DCF77/DCF77.cpp.o
Using previously compiled: /tmp/build2850694295725593229.tmp/DCF77/Utils.cpp.o
Using previously compiled: /tmp/build2850694295725593229.tmp/Time/Time.cpp.o
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega2560 -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino/cores/arduino -I/usr/share/arduino/hardware/arduino/variants/mega -I/usr/share/arduino/libraries/LiquidCrystal -I/usr/share/arduino/libraries/DCF77 -I/usr/share/arduino/libraries/Time -I/usr/share/arduino/libraries/Time/utility /usr/share/arduino/libraries/Time/DateStrings.cpp -o /tmp/build2850694295725593229.tmp/Time/DateStrings.cpp.o
hier geht es los:
/usr/share/arduino/libraries/Time/DateStrings.cpp:18:18: error: variable ‘monthStr1’ must be const in order to be put into read-only section by means of ‘attribute((progmem))’
/usr/share/arduino/libraries/Time/DateStrings.cpp:19:18: error: variable ‘monthStr2’ must be const in order to be put into read-only section by means of ‘attribute((progmem))’
/usr/share/arduino/libraries/Time/DateStrings.cpp:20:18: error: variable ‘monthStr3’ must be const in order to be put into read-only section by means of ‘attribute((progmem))’
/usr/share/arduino/libraries/Time/DateStrings.cpp:21:18: error: variable ‘monthStr4’ must be const in order to be put into read-only section by means of ‘attribute((progmem))’
.
.
und etliche Fehlermedlungen ganz ähnlicher Art, die ich nicht verstehe!!!

Hat jemand von Euch den hauch einer Ahnung, was da schief läuft?
nehme ich die DCF77.h und Time.h wieder raus, läuft der rest des Sketches problemlos.

Irgendwas mag mein Ardu mit den Libraries nicht :frowning:

Gruß, OnkelHotte

Hängt vielleicht damit zusammen, dass du avr-g++ verwendest und die PROGMEM Datentypen deprecated sind: http://www.nongnu.org/avr-libc/user-manual/group__avr__pgmspace.html

Da steht auch hier was dazu: http://lists.gnu.org/archive/html/avr-libc-dev/2012-01/msg00007.html

"progmem-in-types works per accident in avr-gcc; the support in avr-gcc is the same as in avr-g++"

Mir ist aber nicht klar wie man das jetzt korrekt macht.

onkelhotte: Hat jemand von Euch den hauch einer Ahnung, was da schief läuft? nehme ich die DCF77.h und Time.h wieder raus, läuft der rest des Sketches problemlos.

Irgendwas mag mein Ardu mit den Libraries nicht :-(

Es sieht für mich so aus, als wenn Dir der Compiler sagen möchte, dass Du nur Konstanten in den PROGMEM verschieben kannst und das auch entsprechend im Quelltext stehen soll, also etwa so:

const char monthStr1[] PROGMEM = "January";
const char monthStr2[] PROGMEM = "February";
const char monthStr3[] PROGMEM = "March";
etc.

Eventuell hast Du nicht die Version des AVR-Compilers installiert, die vom Arduino-Team oder vom Entwickler der Library vorgesehen ist. Oder nicht die Version der Library, die für die verwendete Compilerversion vorgesehen ist. Oder sowas.

Na ob ich so hinkriege.

In einem fremden coder herumdoktern… was solls ich teste es eben mal …

vielen dank erstmal
oh

Guck doch mal, ob's unter Windows läuft. Eine virtuelle Maschine sollte dafür ausreichend sein. Selbst wenn die VM nicht mit dem Flashen über USB klarkommt, aber wenn er dir die Chose fehlerfrei durchkompiliert und eine hex Datei abliefert, hast du doch quasi schon gewonnen ;) Ansonsten kommen als mögliche Ursachen auch noch in Frage, das die Lib nur in einer älteren IDE Version läuft. Das läßt sich noch schneller testen.

Gruß Gerald