Forum: PC-Programmierung fixed-point types not supported for this target


von informat (Gast)


Lesenswert?

Hallo,

ich versuche gerade Code für einen Atmel644p zu schreiben. Ich benutze 
Code Blocks und versuche gerade eine Bibliothek für Fixpoint Arithmetik 
(avrfix) zu linken. Ich bekomme allerdings zu Zeilen wie dieser:

extern _sAccum smulskD(_sAccum, _sAccum);

ganz viele Fehlermeldungen dieser Art:

error: fixed-point types not supported for this target

Der Fehler tritt überall, wo _sAccum benutz wird.

_sAccum scheinen irgendwelche Typen aus dem gcc selbst zu sein, aber ich 
bin mit dem Thema nicht vertraut  und weiß nicht , wo ich ansetzen 
soll...

Hat jemand eine Idee?

Viele Grüße,

informat

von Mark B. (markbrandis)


Lesenswert?

_sAccum ist ein Datentyp aus der Bibliothek, die benutzt werden soll. 
Ist diese verfügbar für genau Deinen verwendeten Mikrocontroller? Sind 
die entsprechenden Header-Dateien inkludiert? Weiß der Linker, wo er die 
Bibliothek findet (die Library liegt im Standard-Lib-Verzeichnis oder 
der Pfad ist entsprechend angegeben)?

von informat (Gast)


Lesenswert?

Hi, also die Pfade müsste ich richtig gesetzt haben, sonst käme ja eher 
sowas wie 'is not defined' oder 'undefined reference'.
Ich habe aber jetzt eine andere Spur; Die, die die Library geschrieben 
haben, haben folgendes getan:

typedef signed long  _Accum;

Und diesen Datentyp gibt es scheinbar auch im GCC4.4. Ich glaube, da 
gibt es Probleme mit der Mehdeutigkeit. Ich werden den Typ mal 
umbennen...

von informat (Gast)


Lesenswert?

ok, das Problem war, dass es im GCC nen Datentyp _Accum gab, der 
ebenfalls in der externen lib existierte. Dass führte zu der etwas 
seltsamen Fehlermeldung....

Grüße,
David

von Rolf Magnus (Gast)


Lesenswert?

Tja, solche Dinge können passieren, wenn man einen eigentlich 
reservierten Namen verwendet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.