Was verursacht meinen Fehler beim Ausführen von arm-none-eabi-gcc.exe von Keil uVision?

Ich versuche, Keil uVision einzurichten, um ein einfaches C++-Programm für den STM32F3-Mikrocontroller zu erstellen. Ich habe die GNU ARM-Toolchain auf meinen Windows-Computer heruntergeladen und im Verzeichnis abgelegt C:\Program Files (x86)\GNU Tools ARM Embedded\bin\. In Keil habe ich ein Projekt erstellt und ein Fenster Projektelemente verwalten geöffnet, in dem ich Use GCC Compiler (GNU) for ARM projectsdas Präfix auswählen und festlegen konnte arm-none-eabi-.

Wenn ich auf „Erstellen“ klicke, zeigt das Ausgabefenster, dass die Kompilierung abgeschlossen ist und die Verknüpfungsphase erreicht ist. Hier ist die Ausgabe:

Rebuild target 'Target 1' linking... --- Error: failed to execute 'arm-none-eabi-gcc' ".\evt-bms.elf" - 1 Error(s), 0 Warning(s). Target not created. Build Time Elapsed: 00:00:00

Ich habe überprüft, dass sich arm-none-eabi-gcc.exe im bin-Verzeichnis befindet (obwohl ich eine Beschwerde über g++ erwarten würde, da es sich um eine C++-Quelle handelt).

Hier ist ein Screenshot der Einstellungsseite für Ordner/Erweiterungen:Screenshot der Einstellungen für Ordner/Erweiterungen

Hat jemand eine Idee für weitere Fehlersuche, die ich tun kann? Es wäre großartig, wenn das Ausgabefenster ein wenig mehr Informationen hätte, da es wirklich nicht so hilfreich ist, nur zu sagen, dass es ohne Kontext des versuchten Befehls nicht ausgeführt werden kann.

C++-Code muss mit dem Compiler-Treiber gelinkt werden …-g++, da der Linker aus den .oDateien nicht erkennen kann, dass es sich dabei um C++ handelte, sodass das Linken mit …-gccnicht korrekt verknüpft wird. Es sollte irgendwo eine Einstellung geben, mit der Sie auswählen können, wie der Linker aufgerufen werden soll, aber ich habe keine aktuelle Installation, daher kann ich dies nicht überprüfen.
Versuchen Sie, die identische Befehlszeile von einem Terminal aus auszuführen, um zu sehen, was der Compiler direkt sagt. (Sie können -v oder --verbose für weitere Informationen hinzufügen)
@BrianDrummond leider kann ich nicht einmal sehen, welcher Befehl ausgeführt wurde, der das ausgelöst hat. Die von mir gepostete Ausgabe war das Ergebnis des Klickens auf die Schaltflächen „Build“ oder „Rebuild“.
Es wird einen Weg geben, an diese Befehlszeile zu kommen - ohne Zweifel tief in der Dokumentation vergraben.

Antworten (1)

Ich verwende auch Keil µVision (wusste nicht einmal, dass Sie den GNU-Compiler einstellen können)

Ich habe das "GNU Tools ARM Embedded\6 2017-q2-update" installiert und Keil hat den Pfad automatisch ausgefüllt - aber ohne das führende /bin/, wie in Ihrem Screenshot zu sehen. Vielleicht versuchen, es zu entfernen? (zB mein Pfad ist "C:\Program Files (x86)\GNU Tools ARM Embedded\6 2017-q2-update\")