Hallo, gibt es eine Möglichkeit in uVison .cpp Dateien zu kompilieren? Etwas Vergleichbares zu der Einstellung 'Compile as C++' im Visual Studio zum Beispiel? Oder ein include? Bei geänderter Endung in .c funktioniert alles. Bei .cpp werden alle in den Modulen enthaltenen Funktionen als 'Undefined symbol' mit einem Error gekennzeichnet. Viele Grüße, Mirco
vielleicht fehlt ja sowas? extern "C" { #include "cheader.h" } der c++ compiler verändert die Funktionsnamen damit ÜBerladung möglich ist. Um das für c Module zu verhindern müssen die entsprechenden header als extern "C" definiert werden
Funktioniert leider nicht... Kann es sein, dass das nur für einzelne Funktionen funktioniert und nicht für die ganze header-Datei? error: #40: expected an identifier habe es in der main.c und in includes.h versucht, die wiederum in main.c included ist. Kein Erfolg bisher.
Hallo es liegt auf jedefall an sowas. Probier im Header die C - Funktionen mit dem hier zu kapseln. #ifdef __cplusplus extern "C" { #endif #ifdef __cplusplus } #endif danach sollte es auch funktionieren. Hier bei uns gehst es so auf jedenfall. Gruß Jürgen
Hallo Jürgen, in meiner main.c steht jetzt:
1 | ..
|
2 | #define __cplusplus
|
3 | |
4 | #include "includes.h" |
5 | ..
|
die includes.h ist als Bild im Anhang; daraus ersichtlich ein Teil der Fehler die dann entstehen... Die ersten beiden beziehen sich auf includes.h, die restlichen alle auf stdlib.h Was mache ich falsch? Viele Grüße, Mirco
Hallo, das define __cplusplus brauchst Du nicht das macht der compiler. Zudem würde ich nicht den ganzen Header so einbinden sondern das extern C in den Header verschieben. Wenn der Header dann vom Compiler (c oder c++) aufgerufen wird weiß er wie er damit umzugehen hat.
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.