Hallo,
komme beim Kompilieren nicht weiter:
habe mich nach dem http://www.fhemwiki.de/wiki/FHEMduino (http://www.fhemwiki.de/wiki/FHEMduino) gerichtet:
Zitat4. Im Fhemduino GIT sind die nächsten Schritte beschrieben:
How to compile with Arduino IDE unter Microsoft Windows:
Sync the repository from github or download the complete archive as a zip archive.
Extract or copy all files from src and lib the files to a directory called fhemduino
rename sketch.ino into fhemduino.ino. The name of the sketch must be the same as the directory where it resides.
Look at the sketch.h file, to enable or disable features of the fhemduino.
Open fhemduino.ino in the IDE and just compile it.
Allerdings die IDE für Linux Arduino-1.6.7
Alle Dateien in ein fhemduino Verzeichnis kopiert, und sketch.ino in fhemduino.ino umbenannt. sketch.h nicht geändert.
Zwischenfrage: Braucht man eigentlich die IDE, lässt es sich nicht besser direkt im Raspberry per Kommandozeile kompilieren?
Hier das Ergebnis:
Arduino: 1.6.7 (Linux), Board: "Arduino Nano, ATmega328"
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `enableReceive()'
sketch/fhemduino.ino.cpp.o:/home/bernd/sketchbook/fhemduino/fhemduino.ino:271: first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `handleInterrupt()'
sketch/fhemduino.ino.cpp.o:sketch/oregon.h:129: first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `setup'
sketch/fhemduino.ino.cpp.o:sketch/oregon.h:129: first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `disableReceive()'
sketch/fhemduino.ino.cpp.o:sketch/oregon.h:129: first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `freeRam()'
sketch/helper.cpp.o:sketch/helper.cpp:35: first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `messageAvailable()'
sketch/helper.cpp.o:helper.cpp:(.text._Z16messageAvailablev+0x0): first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `available'
sketch/fhemduino.ino.cpp.o:sketch/oregon.h:129: first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `message'
sketch/fhemduino.ino.cpp.o:sketch/oregon.h:129: first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `resetAvailable()'
sketch/helper.cpp.o:helper.cpp:(.text._Z14resetAvailablev+0x0): first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `loop'
sketch/fhemduino.ino.cpp.o:sketch/oregon.h:129: first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `receiveProtocolKW9010(unsigned int)'
sketch/temphum.cpp.o:sketch/temphum.cpp:18: first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `timings'
sketch/fhemduino.ino.cpp.o:sketch/oregon.h:129: first defined here
/home/bernd/arduino-1.6.7/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld: Warning: size of symbol `timings' changed from 180 in sketch/fhemduino.ino.cpp.o to 150 in sketch/.build/nano328/src/sketch.cpp.o
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `receiveProtocolPT2262(unsigned int)'
sketch/PT2262.cpp.o:sketch/PT2262.cpp:13: first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `PT2262_transmit(int, int)'
sketch/PT2262.cpp.o:PT2262.cpp:(.text._Z15PT2262_transmitii+0x0): first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `sendPT2262(char*)'
sketch/PT2262.cpp.o:PT2262.cpp:(.text._Z10sendPT2262Pc+0x0): first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `cmdstring'
sketch/fhemduino.ino.cpp.o:sketch/oregon.h:129: first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `HandleCommand(String)'
sketch/fhemduino.ino.cpp.o:sketch/oregon.h:129: first defined here
sketch/.build/nano328/src/sketch.cpp.o: In function `enableReceive()':
/home/bernd/src/sketch.ino:30: multiple definition of `serialEvent()'
sketch/fhemduino.ino.cpp.o:sketch/oregon.h:129: first defined here
sketch/lib/FA20RF.cpp.o: In function `receiveProtocolFA20RF(unsigned int)':
sketch/lib/FA20RF.cpp:47: multiple definition of `receiveProtocolFA20RF(unsigned int)'
sketch/FA20RF.cpp.o:sketch/FA20RF.cpp:47: first defined here
sketch/lib/FA20RF.cpp.o:(.bss.timingsFA20+0x0): multiple definition of `timingsFA20'
sketch/FA20RF.cpp.o:(.bss.timingsFA20+0x0): first defined here
sketch/lib/FA20RF.cpp.o: In function `FA20RF(unsigned int)':
FA20RF.cpp:(.text._Z6FA20RFj+0x0): multiple definition of `FA20RF(unsigned int)'
sketch/FA20RF.cpp.o:FA20RF.cpp:(.text._Z6FA20RFj+0x0): first defined here
sketch/lib/FA20RF.cpp.o: In function `sendFA20RF(char*)':
FA20RF.cpp:(.text._Z10sendFA20RFPc+0x0): multiple definition of `sendFA20RF(char*)'
sketch/FA20RF.cpp.o:FA20RF.cpp:(.text._Z10sendFA20RFPc+0x0): first defined here
sketch/lib/FA20RF.cpp.o: In function `FA20RF_CMDs(String)':
FA20RF.cpp:(.text._Z11FA20RF_CMDs6String+0x0): multiple definition of `FA20RF_CMDs(String)'
sketch/FA20RF.cpp.o:FA20RF.cpp:(.text._Z11FA20RF_CMDs6String+0x0): first defined here
sketch/lib/PT2262.cpp.o: In function `receiveProtocolPT2262(unsigned int)':
sketch/lib/PT2262.cpp:13: multiple definition of `receiveProtocolPT2262(unsigned int)'
sketch/PT2262.cpp.o:PT2262.cpp:(.text._Z21receiveProtocolPT2262j+0x0): first defined here
sketch/lib/PT2262.cpp.o: In function `PT2262_transmit(int, int)':
PT2262.cpp:(.text._Z15PT2262_transmitii+0x0): multiple definition of `PT2262_transmit(int, int)'
sketch/PT2262.cpp.o:PT2262.cpp:(.text._Z15PT2262_transmitii+0x0): first defined here
sketch/lib/PT2262.cpp.o: In function `sendPT2262(char*)':
PT2262.cpp:(.text._Z10sendPT2262Pc+0x0): multiple definition of `sendPT2262(char*)'
sketch/PT2262.cpp.o:PT2262.cpp:(.text._Z10sendPT2262Pc+0x0): first defined here
sketch/lib/PT2262.cpp.o: In function `PT2262_CMDs(String)':
PT2262.cpp:(.text._Z11PT2262_CMDs6String+0x0): multiple definition of `PT2262_CMDs(String)'
sketch/PT2262.cpp.o:PT2262.cpp:(.text._Z11PT2262_CMDs6String+0x0): first defined here
sketch/lib/doorbell.cpp.o: In function `receiveProtocolTCM(unsigned int)':
sketch/lib/doorbell.cpp:19: multiple definition of `receiveProtocolTCM(unsigned int)'
sketch/doorbell.cpp.o:sketch/doorbell.cpp:19: first defined here
sketch/lib/doorbell.cpp.o: In function `receiveProtocolHX(unsigned int)':
doorbell.cpp:(.text._Z17receiveProtocolHXj+0x0): multiple definition of `receiveProtocolHX(unsigned int)'
sketch/doorbell.cpp.o:doorbell.cpp:(.text._Z17receiveProtocolHXj+0x0): first defined here
sketch/lib/doorbell.cpp.o: In function `sendStd(char*, unsigned char, int, int, int, int, int, unsigned long)':
doorbell.cpp:(.text._Z7sendStdPchiiiiim+0x0): multiple definition of `sendStd(char*, unsigned char, int, int, int, int, int, unsigned long)'
sketch/doorbell.cpp.o:doorbell.cpp:(.text._Z7sendStdPchiiiiim+0x0): first defined here
sketch/lib/doorbell.cpp.o: In function `TCM_CMDs(String)':
doorbell.cpp:(.text._Z8TCM_CMDs6String+0x0): multiple definition of `TCM_CMDs(String)'
sketch/doorbell.cpp.o:doorbell.cpp:(.text._Z8TCM_CMDs6String+0x0): first defined here
sketch/lib/doorbell.cpp.o: In function `HeideTX_CMDs(String)':
doorbell.cpp:(.text._Z12HeideTX_CMDs6String+0x0): multiple definition of `HeideTX_CMDs(String)'
sketch/doorbell.cpp.o:doorbell.cpp:(.text._Z12HeideTX_CMDs6String+0x0): first defined here
sketch/lib/helper.cpp.o: In function `uptime(unsigned long, bool)':
sketch/lib/helper.cpp:8: multiple definition of `uptime(unsigned long, bool)'
sketch/helper.cpp.o:helper.cpp:(.text._Z6uptimemb+0x0): first defined here
sketch/lib/helper.cpp.o: In function `freeRam()':
helper.cpp:(.text._Z7freeRamv+0x0): multiple definition of `freeRam()'
sketch/helper.cpp.o:helper.cpp:(.text._Z7freeRamv+0x0): first defined here
sketch/lib/helper.cpp.o: In function `messageAvailable()':
helper.cpp:(.text._Z16messageAvailablev+0x0): multiple definition of `messageAvailable()'
sketch/helper.cpp.o:helper.cpp:(.text._Z16messageAvailablev+0x0): first defined here
sketch/lib/helper.cpp.o: In function `resetAvailable()':
helper.cpp:(.text._Z14resetAvailablev+0x0): multiple definition of `resetAvailable()'
sketch/helper.cpp.o:helper.cpp:(.text._Z14resetAvailablev+0x0): first defined here
sketch/lib/helper.cpp.o: In function `RawMessage(unsigned int*, unsigned char, unsigned int, unsigned int, unsigned int, unsigned int)':
helper.cpp:(.text._Z10RawMessagePjhjjjj+0x0): multiple definition of `RawMessage(unsigned int*, unsigned char, unsigned int, unsigned int, unsigned int, unsigned int)'
sketch/helper.cpp.o:helper.cpp:(.text._Z10RawMessagePjhjjjj+0x0): first defined here
sketch/lib/helper.cpp.o: In function `hexToDec(String)':
helper.cpp:(.text._Z8hexToDec6String+0x0): multiple definition of `hexToDec(String)'
sketch/helper.cpp.o:helper.cpp:(.text._Z8hexToDec6String+0x0): first defined here
sketch/lib/helper.cpp.o: In function `hex2bin(String)':
helper.cpp:(.text._Z7hex2bin6String+0x0): multiple definition of `hex2bin(String)'
sketch/helper.cpp.o:helper.cpp:(.text._Z7hex2bin6String+0x0): first defined here
sketch/lib/it_tx.cpp.o: In function `receiveProtocolIT_TX(unsigned int)':
sketch/lib/it_tx.cpp:43: multiple definition of `receiveProtocolIT_TX(unsigned int)'
sketch/it_tx.cpp.o:sketch/it_tx.cpp:43: first defined here
sketch/lib/it_tx.cpp.o:(.bss.timingsTX+0x0): multiple definition of `timingsTX'
sketch/it_tx.cpp.o:(.bss.timingsTX+0x0): first defined here
sketch/lib/it_tx.cpp.o: In function `IT_TX(unsigned int)':
it_tx.cpp:(.text._Z5IT_TXj+0x0): multiple definition of `IT_TX(unsigned int)'
sketch/it_tx.cpp.o:it_tx.cpp:(.text._Z5IT_TXj+0x0): first defined here
sketch/lib/somfyRTS.cpp.o: In function `handleChange(unsigned int)':
sketch/lib/somfyRTS.cpp:51: multiple definition of `handleChange(unsigned int)'
sketch/somfyRTS.cpp.o:sketch/somfyRTS.cpp:51: first defined here
sketch/lib/somfyRTS.cpp.o:(.bss.int_bitCount+0x0): multiple definition of `int_bitCount'
sketch/somfyRTS.cpp.o:(.bss.int_bitCount+0x0): first defined here
sketch/lib/somfyRTS.cpp.o:(.bss.int_presyncCount+0x0): multiple definition of `int_presyncCount'
sketch/somfyRTS.cpp.o:(.bss.int_presyncCount+0x0): first defined here
sketch/lib/somfyRTS.cpp.o:(.bss.int_messageDone+0x0): multiple definition of `int_messageDone'
sketch/somfyRTS.cpp.o:(.bss.int_messageDone+0x0): first defined here
sketch/lib/somfyRTS.cpp.o: In function `somfyHandler(unsigned int)':
somfyRTS.cpp:(.text._Z12somfyHandlerj+0x0): multiple definition of `somfyHandler(unsigned int)'
sketch/somfyRTS.cpp.o:somfyRTS.cpp:(.text._Z12somfyHandlerj+0x0): first defined here
sketch/lib/somfyRTS.cpp.o:(.bss.int_hasSync+0x0): multiple definition of `int_hasSync'
sketch/somfyRTS.cpp.o:(.bss.int_hasSync+0x0): first defined here
sketch/lib/temphum.cpp.o: In function `receiveProtocolKW9010(unsigned int)':
sketch/lib/temphum.cpp:18: multiple definition of `receiveProtocolKW9010(unsigned int)'
sketch/temphum.cpp.o:temphum.cpp:(.text._Z21receiveProtocolKW9010j+0x0): first defined here
sketch/lib/temphum.cpp.o: In function `receiveProtocolEuroChron(unsigned int)':
temphum.cpp:(.text._Z24receiveProtocolEuroChronj+0x0): multiple definition of `receiveProtocolEuroChron(unsigned int)'
sketch/temphum.cpp.o:temphum.cpp:(.text._Z24receiveProtocolEuroChronj+0x0): first defined here
sketch/lib/temphum.cpp.o: In function `receiveProtocolNC_WS(unsigned int)':
temphum.cpp:(.text._Z20receiveProtocolNC_WSj+0x0): multiple definition of `receiveProtocolNC_WS(unsigned int)'
sketch/temphum.cpp.o:temphum.cpp:(.text._Z20receiveProtocolNC_WSj+0x0): first defined here
sketch/lib/temphum.cpp.o: In function `receiveProtocolTX70DTH(unsigned int)':
temphum.cpp:(.text._Z22receiveProtocolTX70DTHj+0x0): multiple definition of `receiveProtocolTX70DTH(unsigned int)'
sketch/temphum.cpp.o:temphum.cpp:(.text._Z22receiveProtocolTX70DTHj+0x0): first defined here
sketch/lib/temphum.cpp.o: In function `receiveProtocolAURIOL(unsigned int)':
temphum.cpp:(.text._Z21receiveProtocolAURIOLj+0x0): multiple definition of `receiveProtocolAURIOL(unsigned int)'
sketch/temphum.cpp.o:temphum.cpp:(.text._Z21receiveProtocolAURIOLj+0x0): first defined here
collect2: error: ld returned 1 exit status
exit status 1
Error compiling.
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
EDIT 1
Habe schon (unheimlich schnell) vom Entwickler über Github Antwort bekommen, kann ich aber noch nicht werten:
Zitatmdorenkamp commented an hour ago
Ich habe das ganze mit inotool (http://inotool.org/) gebaut.
@mdorenkampmdorenkamp closed this an hour ago
@mdorenkamp
Owner
mdorenkamp commented an hour ago
zur info, ich arbeite nicht mehr aktiv an den modulen, ich habe das ganze mittlerweile auf MQTT umgestellt (FHEMduino -seriell->NodeRed->mosquitto->FHEM). im forum gibt es einige posts dazu
Ich verwende zwar die ide nur für windows, aber dort bin ich bewusst bei 1.6.5 geblieben, da es mit 1.6.6 und wohl auch danach schwierigkeiten gibt. Die gcc einstellungen sind wohl etwas restriktiver. Also empfehlung versuche doch mal die ide 1.6.5.
Ich vermute nämlich, dass die ides auf windows und linux sich sehr parallel entwicklen.
Danke Dir, mal sehen wann ich dazu komme, die Version zu installieren ...und ob es dann nicht Konflikte zwischen Bibliotheken etc. gibt.
Ciao,
Bernd
Da die Frage nicht direkt mit FHEM zu tun hat bitte nach Off-Topic verschieben.
Zitat von: viegener am 16 Januar 2016, 18:43:54
Ich verwende zwar die ide nur für windows, aber dort bin ich bewusst bei 1.6.5 geblieben, da es mit 1.6.6 und wohl auch danach schwierigkeiten gibt. Die gcc einstellungen sind wohl etwas restriktiver. Also empfehlung versuche doch mal die ide 1.6.5.
Ich vermute nämlich, dass die ides auf windows und linux sich sehr parallel entwicklen.
DAnk Dir, Christian es hat tatsächlich geklappt ... da zweifelt man ja wirklich an sich selber und das war ein ungewöhnlicher Tipp. Vielleicht könnte das im Wiki eingegeben werden?(Ich wollte das editieren, hatte aber keine Rechte) . Falls die IDEs gleich sind (im Wiki wird auch auf WIN Bezug genommen) stimmt so manches nicht. Z.B. ist die hex-Datei nicht bei den Quelltexten sondern in einer /tmp-Datei. Das genaue Verzeichis wird nur dann angezeigt, wenn man in der IDE den verbose mode beim Kompilieren aktiviert hat. Da gerade Anfänger - wegen der geringen Kosten - den FHEMduino bauen werden, könnte oft darüber gestolpert werden.
Schönen Sonntag,
Bernd
Hallo,
ich benutze den Arduinozweig von CodeBlocks. Es lohnt sich in diese IDE einzuarbeiten.
Grüße Jörg
Zitat von: Berndd am 17 Januar 2016, 11:02:00
DAnk Dir, Christian es hat tatsächlich geklappt ... da zweifelt man ja wirklich an sich selber und das war ein ungewöhnlicher Tipp. Vielleicht könnte das im Wiki eingegeben werden?(Ich wollte das editieren, hatte aber keine Rechte) . Falls die IDEs gleich sind (im Wiki wird auch auf WIN Bezug genommen) stimmt so manches nicht. Z.B. ist die hex-Datei nicht bei den Quelltexten sondern in einer /tmp-Datei. Das genaue Verzeichis wird nur dann angezeigt, wenn man in der IDE den verbose mode beim Kompilieren aktiviert hat. Da gerade Anfänger - wegen der geringen Kosten - den FHEMduino bauen werden, könnte oft darüber gestolpert werden.
Schönen Sonntag,
Bernd
Hallo Bernd,
Schön dass es geklappt hat, auch wenn ich nicht Christian bin ;)
Hol Dir doch eine Schreibberechtigung fürs Wiki, das geht sehr schnell und einfach. Ich gebe Dir recht es wäre gut das anzupassen. Da ich leider keine grafische Oberfläche an meinen Linuxrechnern habe fehlt mir die Möglichkeit das selber durchzugehen.
Das Wiki kann meines Erachtens nur profitieren wenn mehr Autoren/Bearbeiter mithelfen!
Gruss,
Johannes
Hallo Johannes,
ich werde wohl zukünftig beim Forennamen bleiben ... dann geht nix schief ;-) viegner.
Du schreibst:
ZitatHol Dir doch eine Schreibberechtigung fürs Wiki, das geht sehr schnell und einfach
ich gehe ins Wiki und lese
ZitatZur Vermeidung von Spam und Vandalismus im Wiki gibt es generell keine Schreibberechtigung für anonyme Benutzer. Wer mitarbeiten will, muss die Einrichtung eines Benutzerkontos über E-Mail an einen der Administratoren beantragen.
Finde auch dort weder 'schnell' noch 'einfach' den admin ... wenigstens dort könnte doch ein link sein, über den man zum admin kommt oder gleich ne email absetzt. Wahrscheinlich ist das schon ein eingebaute Intelligenztest - wer den Kontakt zum admin nicht findet sollte auch nichts im Wiki ändern :o
Als noch Aussenstehender habe ich bemerkt, dass in FHEM vieles einfach geht -
aber erst wenn mans weiss und das dauert bei mir ziemlich lange, weil (was aber normal ist bei dynamischen Projekten), die Dokumentation hinter den technischen Fortschritt nachhinkt.
ciao,
Bernd
Dann spendier ich doch mal einen Link für die Wiki-Registrierung:
http://www.fhemwiki.de/wiki/FHEMWiki:Administratoren (http://www.fhemwiki.de/wiki/FHEMWiki:Administratoren)
Das ist wohl ein Geheimbund :-) .. es wäre doch schön, wenn der o.a. Link hier zu finden wäre.
http://www.fhemwiki.de/wiki/Hauptseite
Gute Nacht,
Bernd
Zitat von: Berndd am 19 Januar 2016, 23:42:09
Das ist wohl ein Geheimbund :-) .. es wäre doch schön, wenn der o.a. Link hier zu finden wäre.
http://www.fhemwiki.de/wiki/Hauptseite
Gute Nacht,
Bernd
Ist er doch:
ZitatRegistrierung zur Mitarbeit: wende Dich bitte an einen Administrator
und hinter Administrator steckt der obige Link also kein Geheimbund ;)
tut mir wirklich Leid: Andere Links (auch auf dieser Seite) sind, was imho Konvention ist, farblich unterlegt oder anderweitig gekennzeichnet, dieser hier jedoch nicht. ... komme mir vor wie bei ner Schnitzeljagd.
Gute Nacht,
Bernd
Zitat von: JoWiemann am 17 Januar 2016, 11:48:39
Hallo,
ich benutze den Arduinozweig von CodeBlocks. Es lohnt sich in diese IDE einzuarbeiten.
Grüße Jörg
DAnke Jörg,
warum lohnt es sich, was ist dabei anders/besser?
Gruss,
Bernd