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 projects
das 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:
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.
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\")
Simon Richter
…-g++
, da der Linker aus den.o
Dateien nicht erkennen kann, dass es sich dabei um C++ handelte, sodass das Linken mit…-gcc
nicht 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.user_1818839
Shane Snover
user_1818839