Forum: Mikrocontroller und Digitale Elektronik STM32F4 mit CodeBlocks und Linux - C++ geht nicht?


von Daniel F. (franken_3)


Lesenswert?

Hi Leute,

ich habe mir den Artikel hier

Beitrag "STM32F4 mit Code::Blocks"

durchgelesen und konnte das Beispiel erfolgreich auf Linux (Ubutnut 
14.04 , Codeblocks 13.12) ummünzen.

Meine C-Files, die ich erstellen kann, kann ich erfolgreich auf den 
STM32 laden und Sie funktionieren auch.

Nun habe ich leider wieder das Problem, wie auf der Kommandzeile auch 
schon, das wenn ich C++ Std-Header einbinden will, der Compiler die 
Biblioteken nicht kennt
1
#include <iostream>
2
#include <vector>
3
#include <deque>

führen immer zu der gleichen Meldung:

src/main.c|6|fatal error: iostream: No such file or directory|

Unter Windows habe ich bei der CodeBlocks-basierten IDE Em::Blocks in 
den Linker-Settings die Optione "Use C++-Libaries" aktiviert, seitdem 
geht dort alles.

Unter Linux im Orginalen Code::Blocks konnte ich jedoch bisher so eine 
Option nicht finden.
Wenn eine solche Option aktiviert ist, definiert der Compiler 
automatisch mit dem Präprozessor

__cplusplus

fuer die Verwendung vom g++ vermute ich mal, außerdem für
1
#ifdef __cplusplus
2
 extern "C" {
3
#endif

Würde mich echt freuen wenn mir hier jemand weiterhelfen könnte.


Meine Compiler-Options sind:

-mcpu=cortex-m4
-mfloat-abi=hard
-mfpu=fpv4-sp-d16
-ffunction-sections
-fdata-sections
-flto
-Wl,
-static
-specs=nosys.specs



Danke


Habe hier noch einen Nachtrag:

Habe die main.c in main.cpp umbenannt, jetzt kommen andere 
Fehlermeldungen:

fstatr.c:(.text._fstat_r+0xe)||undefined reference to `_fstat'|
openr.c:(.text._open_r+0x10)||undefined reference to `_open'|

usw...

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.