Forum: Compiler & IDEs Fehlermeldungen, aber erfolgreiches Compilieren und Uploaden


von Florian R. (fxlxo)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich benutzte das Arduino-Plugin in Eclipse. Nun habe ich einen Test 
geöffnet und der µC(STM32F103C..., Blue Pill Board) verhält sich wie 
erwartet.

Das Komische sind die Fehlermeldungen, die ich erhalte. Warum kann ich 
erfolgreich compilieren trotz der Fehlermeldungen? Bild im Anhang.

Grüße

: Verschoben durch Moderator
von Cerberus (Gast)


Lesenswert?

Florian R. schrieb:
> verhält sich wie
> erwartet.

Das vermutest du wohl, aber wenn gcc und g++ nicht gefunden werden,
wie soll das dann funktionieren? Oder werden diese Funktionen gar nicht
genutzt? Dann wäre es ja auch nicht verwunderlich. Implementiere die
Pfade korrekt, dann gehen auch die Errors weg.

von Dr. Sommer (Gast)


Lesenswert?

Das "Problems" Fenster ist bei C(++) Programmierung nutzlos, das zeigt 
jede Menge nichtexistente Fehler an, und ignoriert tatsächliche. Achte 
einfach ausschließlich auf die Ausgabe des Compilers selbst, im 
"Console" Fenster. Das ist einzig ausschlaggebend.

von Bernd K. (prof7bit)


Lesenswert?

Dr. Sommer schrieb:
> Das "Problems" Fenster ist bei C(++) Programmierung nutzlos

Blödsinn. Was glaubst Du wohl wozu das erfunden wurde? Etwa damit es 
nicht funktioniert? Wenn die IDE richtig konfiguriert wird gehen alle 
vermeintlichen Fehler weg und tatsächliche werden angezeigt. Mach ich 
seit 15 Jahren so, funktioniert tadellos.

: Bearbeitet durch User
von Clemens B. (Gast)


Lesenswert?

avr plugin version 2.4.1 hast du vermutlich? dann nutze die 2.4.2! genau 
das problem hatte ich auch vor kurzem

https://sourceforge.net/projects/avr-eclipse/files/

von Kaj (Gast)


Lesenswert?

Clemens B. schrieb:
> avr plugin version 2.4.1 hast du vermutlich? dann nutze die 2.4.2! genau
> das problem hatte ich auch vor kurzem

Florian R. schrieb:
> Nun habe ich einen Test
> geöffnet und der µC(STM32F103C..., Blue Pill Board)

von Louis (Gast)


Lesenswert?

Florian R. schrieb:
> Das Komische sind die Fehlermeldungen, die ich erhalte. Warum kann ich
> erfolgreich compilieren trotz der Fehlermeldungen? Bild im Anhang.

Eclipse (bzw. PlugIns) analysiert Deinen Code "live" während Du ihn 
eintippst und zeigt Dir ggf. Fehler im Problems-Fenster an.
Das Ergebnis der Live-Analyse muss aber nicht mit dem Ergebnis des 
Builds übereinstimmen, das Dir im Output-Fenster angezeigt wird.

Oft zeigt die Live-Analyse Fehler an, die sich allein dadurch beheben 
lassen, dass man den Index neu erzeugt (Auf das Projekt gehen, 
Kontextmenü öffnen und dort "Index/Rebuild" ausführen).

von Florian R. (fxlxo)


Lesenswert?

Danke für die Tipps,

also den Rebuild beim Indexer hab ich versucht.
Reset bei der Discovery-Einstellung. Beides hat keine Auswirkungen auf 
den meine Fehlermeldungen.

Ich möchte nachverfolgen wie der USB-Handling implementiert ist bei 
diesem Beispiel. Nun ist es sehr blöd wenn vieles rotmakiert ist und der 
Code unübersichtlich wird.

Was wäre den in meinem Fall eine günstige Einstellung des 
"Problem-Fensters". Gibt es da fertige Voreinstellungen?

Grüße

von STM32F1.... (Gast)


Lesenswert?

avr plugin um source für einen sfm32f1 zu kompilieren? Das sind doch ARM 
Kerne?

von Dr. Sommer (Gast)


Angehängte Dateien:

Lesenswert?

Bernd K. schrieb:
> Blödsinn. Was glaubst Du wohl wozu das erfunden wurde?
Für Java-Programmierung und simple C(++) Fälle.

Bernd K. schrieb:
> Wenn die IDE richtig konfiguriert wird gehen alle
> vermeintlichen Fehler weg
Ach? Auch bei Sprachfeatures die der Analyzer von Eclipse nicht kennt, 
der Compiler aber sehr wohl?

Bernd K. schrieb:
> Mach ich
> seit 15 Jahren so, funktioniert tadellos.
Dann erkläre mir mal, wie man eclipse einstellen muss, damit es diesen 
absolut korrekten (wenn so auch sinnlosen) Code akzeptiert:
1
template <typename... T>
2
bool AND (T... args) {
3
  return (args && ...);
4
}
5
6
template <typename T, T N>
7
using GenSeq = int;
8
9
template <typename... T>
10
struct TypeList {
11
  template <typename IT = int>
12
  using IndexSeq = GenSeq<IT, sizeof... (T)>;
13
};
14
15
int main () {
16
}
GCC und Clang finden hier keine Fehler, eclipse schon (siehe 
Screenshot).

Zum Problem des TO: Eclipse findet gcc & g++ nicht. Die werden aber ja 
gar nicht gebraucht, weil vermutlich arm-none-eabi-gcc genutzt werden 
soll. Das muss im Projekt auch so eingestellt werden.

von Florian R. (fxlxo)


Lesenswert?

Ok,

dass der Path nicht richtig ist sagt er ja, aber wo stelle ich diesen 
für den CDT Compiler ein? Deshalb war zu Beginn der Screenshot von der 
Einstellung der angeblichen Problemquelle beigefügt.

von Bernd K. (prof7bit)


Lesenswert?

Wenn Du ARM Cortex mit Eclipse machen willst dann führt kein sinnvoller 
Weg am GNU-MCU Plugin (ehemals GNU ARM Plugin) vorbei.

Am besten fängst Du also nochmal von vorn an, gehst zunächst dort hin: 
https://gnu-mcu-eclipse.github.io/ und folgst den Anweisungen.

: Bearbeitet durch User
von Florian R. (fxlxo)


Lesenswert?

Also das Arduino-plugin habe ich nur um Code nachzuvollziehen und 
biespielsweise wenig abzuändern. Heißt ich öffne fertige Projekte und 
will (meistens Peripherie) Code anschauen. Die eigentlichen Codes 
schreibe ich dann in GNU-MCU Plugin auch in Eclipse. Zudem möchte ich 
Eclipse bedienen können.

Deshalb meine Frage: Wie und vorallem wo ändere ich die 
"Problem"-Fenster Meldungen und wo sehe ich die Einstellung des CDT 
Build in Compiler Settings?

von Bernd K. (prof7bit)


Lesenswert?

Florian R. schrieb:
> Also das Arduino-plugin habe ich nur um Code nachzuvollziehen und
> biespielsweise wenig abzuändern.

Du hast einen STM32, was hilft Dir da das Arduino-Plugin? Deinstallier 
das, es verwirrt nur und Du brauchst es nicht.

> wo sehe ich die Einstellung des CDT
> Build in Compiler Settings?

Unter Window->Preferences->MCU stellst Du die Pfade zu den Tools ein. 
Also wo liegen die GNU Build-Tools und wo liegt die Compiler-Toolchain.

Dann probierst Du es nochmal und schaust welche Fehler nun auftreten. 
Wahrscheinlich sind noch Include-Pfade für das jeweilige Projekt 
anzupassen.

Wenn das ein Makefile-Projekt ist (das ohne fremde Hilfe auf der 
Kommandozeile kompiliert, dann und nur dann) kann Eclipse sich komplett 
selbst darauf konfigurieren indem man einfach den Build-Output-Parser 
einschaltet und richtig einstellt. Der findet sich in 
Project->Properties->C++General->Preprocessor Include 
Paths...->Providers->CDT GCC Build Output Parser, wahrscheinlich muss 
das compiler pattern geändert werden und die Einstellungen würde ich 
"pro Projekt" wählen, nicht "Pro Datei".

> wo ändere ich die "Problem"-Fenster Meldungen

Die änderst Du nicht sondern die Fehler beseitigst Du schrittweise 
indem Du bei jedem Fehler die logische Schlussfolgerungen ziehst welche 
Einstellung denn nun noch falsch sein muss, zum Beispiel welchen Header 
er wohl immer noch nicht gefunden hat und warum.

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.