Coocox Compiler Probleme

OP #5259412
Lesenswert?
• ▲
▼
Hallo zusammen

Ich habe heute probiert eine Arduino Library in Coocox für STM32 zu 
bearbeiten. Hierzu habe ich unter "app" im Ordnerbaum auf "Add Files" 
geklickt und die .h und .cpp ausgewählt. Hierzu habe ich die TimeLib 
benutzt.

Grundsätzlich funktioniert der Compiler, da er sofort die Fehler 
erkannte welche ich dann behob.  Eigentlich musste ich nur "millis();" 
fixen, da es dies nur bei Arduino gibt.

Ich habe nun aber folgendes Problem.

Wenn man das main.c builden will, erscheint folgender Fehler
1
RTC3\app/main.c:144: undefined reference to `setTime'
2
RTC3\app/main.c:161: undefined reference to `second'

bezieht sich auf diese Zeilen
1
  setTime(1514570944);
2
  int ssecond = second();

Die beiden Funktionen sind in der TimeLib.h und TimeLib.cpp enthalten...

TimeLib.h habe ich in der main.h Datei des STM32 Projekts angegeben.


Wo mache ich hier den Fehler?
OP #5259441
Lesenswert?
• ▲
▼
Jens D. schrieb:
> Ist SetTime als static angegeben?

im TimeLib.h als "void setTime();"

> Die TimeLib.h kannst du auch in deiner main.c(pp) per include holen.
>
> TimeLib.cpp wird auch sicher kompiliert? Vielleicht musst du wenn
> vorhanden dein makefile anpassen.
>
> Alternativ provoziere mal in der TimeLib einen compile Fehler oder
> warning.

Ja, als ich das erste mal importiert habe endeckte der Compiler ja die 
"millis()" Funktion als fehler, nach dem ich millis() in STM32 
nachgebaut hab ging es.
Gast #5259453
Lesenswert?
• ▲
▼
Johnny S. schrieb:
> Wo mache ich hier den Fehler?

Du wirst schon angeben müssen um welche Lib es sich handelt.

Grunsätzlich bauen viele Arduino Libs auf das existerende
Arduino Basis-Gerüst auf, lassen sich also nicht ohne weiteres
standalone benutzen.

Aber wenn du schon anfängst

Johnny S. schrieb:
> Grundsätzlich funktioniert der Compiler

den Compiler in Zweifel zu ziehen, wo doch Coocox keinen
Compiler hat, dann ist der Weg weit ....
OP #5259464
Lesenswert?
• ▲
▼
Nebel Stocher schrieb:
> Johnny S. schrieb:
>> Wo mache ich hier den Fehler?
>
> Du wirst schon angeben müssen um welche Lib es sich handelt.
>
> Grunsätzlich bauen viele Arduino Libs auf das existerende
> Arduino Basis-Gerüst auf, lassen sich also nicht ohne weiteres
> standalone benutzen.
>
> Aber wenn du schon anfängst
>
> Johnny S. schrieb:
>> Grundsätzlich funktioniert der Compiler
>
> den Compiler in Zweifel zu ziehen, wo doch Coocox keinen
> Compiler hat, dann ist der Weg weit ....

Es handelt sich um die Lib "TimeLib"

In dieser Library gibt es etwa 10 Zeilen welche arduino-spezifisch sind, 
der Rest ist eigentlich nur Rechnerei :)

Anbei mein Projekt inkl modifizierter Lib falls es jemand ansehen 
möchte.
Angehängte Dateien:
Gast #5259497
Lesenswert?
• ▲
▼
Johnny S. schrieb:
> In dieser Library gibt es etwa 10 Zeilen welche arduino-spezifisch sind,
> der Rest ist eigentlich nur Rechnerei :)

Aha!

//#if ARDUINO >= 100
//#include <Arduino.h>
//#else
//#include <WProgram.h>
//#endif

Du meinst also wenn man Includes einfach weglässt dann wird's
schon irgendwie funktionieren?

Nebel Stocher schrieb:
> Grunsätzlich bauen viele Arduino Libs auf das existerende
> Arduino Basis-Gerüst auf, lassen sich also nicht ohne weiteres
> standalone benutzen.
OP #5259504
Lesenswert?
• ▲
▼
Nebel Stocher schrieb:
> Johnny S. schrieb:
>> In dieser Library gibt es etwa 10 Zeilen welche arduino-spezifisch sind,
>> der Rest ist eigentlich nur Rechnerei :)
>
> Aha!
>
> //#if ARDUINO >= 100
> //#include <Arduino.h>
> //#else
> //#include <WProgram.h>
> //#endif
>
> Du meinst also wenn man Includes einfach weglässt dann wird's
> schon irgendwie funktionieren?
>
> Nebel Stocher schrieb:
>> Grunsätzlich bauen viele Arduino Libs auf das existerende
>> Arduino Basis-Gerüst auf, lassen sich also nicht ohne weiteres
>> standalone benutzen.

Arduino.h wird nur benötigt um die Funktion "Millis()" aufzurufen, 
welche Arduino spezifisch ist. Wie bereits geschrieben habe diese auch 
nachgebildet.
Dar Problem ist doch ganz ein anderes!

Das STM32 Programm sieht die funktion "int second()" nicht!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.