Ich benutze avr-gcc Ich habe eine Assemblerdatei in mein Projekt eingebunden. Wenn ich das C-File mit kleinem c schreibe (also den C-Compiler nutze) funktioniert alles. Schreibe ich es aber groß also nutze den C++ Compiler dann kommt eine Fehlermeldung. Die Assemblerfunktionen der Assemblerdatei sind wie im Tutorial beschrieben eingebunden. Also mit Assemblerfile: .global lcd_init .func lcd_init .endfunc Im Header hab ichs so: extern void lcd_init(void); Und im C-File (main) rufe ich es so auf: lcd_init(); Und als Fehler sagt er mir: undefined reference to `lcd_init()' Wie gesagt mit dem C-Compiler funktioniert es. Weiß jemand warum der C++ Compiler damit Probleme hat?
Oder für ein Headerfile, das sich beliebig einbinden lassen soll:
1 | #ifdef __cplusplus
|
2 | extern "C" { |
3 | #endif
|
4 | |
5 | void lcd_init(void); |
6 | |
7 | #ifdef __cplusplus
|
8 | }
|
9 | #endif
|
Dazwischen darf auch mehr als eine derartige Deklaration stehen.
Dankeschön! :-) Es funzt jetzt und die Sache mit dem #ifdef ist hier sehr elegant. :-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.