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...