ARM-Linking-Fehler “Verwendet VFP register arguments, main.elf" nicht auf windows 8 nur?
Ich versuche, um loszulegen auf die Verwendung einer ARM STM32F4-Discovery-Board und ich bin immer einige seltsame Zusammenstellung Fehler bei der Verwendung der "GNU-Tools" auf Windows 8
Derzeit mein code ist sehr einfach:
#include "stm32f4xx_conf.h"
int main(void)
{}
Diese kompiliert mit "make" Befehl perfekt finden auf Ubuntu 12 und windows 7, jedoch bekomme ich die folgende Fehlermeldung in Windows 8. Ich installierte die gleiche toolchain auf allen Maschinen.
C:/Program Files (x86)/codesourcery/sourcery g++
lite/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/bin/ld.exe:
Fehler C:\Users\MyName\AppData\Local\Temp\cckUTM2f.o Benutzer VFP-register
Argumente, main.elf nicht
Habe ich eingegrenzt dieser Fehler nach unten, um die Flagge "-mfloat-abi=hard", die bei ausgeschalteter "-mfloat-abi=soft", können Sie den code kompilieren, jedoch diese Konflikte zu anderen Dateien, die zuvor kompiliert mit "-mfloat-abi=hard".
Weiß jemand, warum dies würde nur auftreten, auf Windows 8 und wie man es beheben? Wenn mehr Informationen benötigt werden, lasst es mich wissen. Sorry im Voraus, wenn dies ist eine nooby-Frage, ich bin ganz neu hier!
- Auf eine genauere Untersuchung, wenn es hilft, fand ich heraus, "arm-none-eabi-gcc -print-multi-directory -marm -mfloat-abi=hard" zurück "fpu" auf Windows 7, aber. "" auf Windows 8
- Eine weitere Beobachtung, kann ich den code kompilieren einwandfrei auf Windows 8, WENN ich öffnen Sie die Eingabeaufforderung über "C:/Users/Program Files (x86)/GNU Tools ARM Embedded/4.9 2014q1/bin/gccvar.Fledermaus"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Antwort erscheint an der Oberfläche nichts zu tun, aber es ist eine indirekte Ursache für diese Fehlermeldung.
Ersten, die "Uses VFP-register..." - Fehlermeldung ist eine direkte Folge von Misch-mfloat-abi=soft und-mfloat-abi=hard-Optionen innerhalb Ihrer bauen. Diese Einstellung einheitlich für alle Objekte, die verknüpft werden sollen.
Die indirekte Ursache für diesen Fehler kann sein, aufgrund der Eclipse-editor immer verwirrt durch einen Fehler im Projekt ".cproject" - Datei. Der Eclipse-editor Häufig reswizzles Datei-links und manchmal bricht es selbst, wenn Sie änderungen an Ihrem directory-Strukturen oder Speicherorte. Dies kann auch Auswirkungen auf die Pfad-Einstellungen", um Ihr gcc-compiler für eine Teilmenge der Dateien eines Projekts. Ich bin zwar noch nicht sicher, was genau verursacht diesen Fehler, ersetzen die .cproject-Datei mit einer backup-Kopie korrigiert dieses problem für mich. In meinem Fall habe ich bemerkt .java.null.pointer-Fehler nach hinzufügen einer include-Verzeichnis-Pfad. Ich fand auch, dass einen anderen Weg, um den gcc-compiler verwendet wurde, die für einige meiner Quellen, die lokal auf den workspace, aber nicht alle von Ihnen. Die beiden gcc-Compiler wurden mit verschiedenen float-Einstellungen aus unbekannten Gründen - damit die VFP-register Fehler.
Verglich ich die .cproject-Einstellungen mit einer älteren Kopie und Unterschiede in der Einträge für die Quellen, der die Schwierigkeit verursacht - obwohl das übergeordnete Projekt-Einstellungen deaktiviert wurde. Durch ersetzen der .cproject-Datei mit der alten version das problem ging Weg, und ich lasse dies als eine Erinnerung an das, was passiert ist.
Die Lösung war eigentlich sehr einfach, es war in Bezug auf die PATH-variable nicht korrekt gesetzt werden, durch die, toolchain ' s installer. Um es zu lösen in windows 8, gehen Sie auf Umgebungsvariablen => System-Variablen und ich fügte hinzu "C:\Program Files (x86)\GNU Tools ARM Embedded\4.8 2014q1\bin" zu path-variable. Der installer hatte es unter "Benutzervariablen für Name" und das, für immer und ewig Grund, hat nicht funktioniert.