Hallo Zusammen, Ich habe hier ein komisches Phänomen das ich mir nicht erklären kann. In meinem Makefile steht folgende Zeile: dep: $(COMMON_SRCS) $(SAM7_SRCS) $(CC) $(INC_FLAGS) -MM $^ > $@ Diese liefert mir auf der Eclipse-Console folgenden Output: make ROOT_DIR=C:/RoboCar/testWorkspace/RoboCar dep arm-elf-gcc -I. -I../common/include -MM ../common/croutine.c ../common/list.c ../common/queue.c ../common/tasks.c ../common/portable/heap_1.c port.c portISR.c startup.c syscalls.c > dep arm-elf-gcc.exe: no input files make: *** [dep] Error 1 Wenn ich nun die Zeile in einem DOS Prompt ausführe: arm-elf-gcc -I. -I../common/include -MM ../common/croutine.c ../common/list.c ../common/queue.c ../common/tasks.c ../common/portable/heap_1.c port.c portISR.c startup.c syscalls.c > dep bekomme ich in der Datei dep das richtige Ergebnis. Dachte erst, es liegt an dem Umleitungsoperator, denn wenn ich die Umleitung weg lasse, so bekomme ich die Depencies in der Eclipse Console angezeigt. Aber der Aufruf echo "Testoutput" > test.txt im Makefile funktioniert. Nur der gcc Aufruf macht Probleme? Übersehe ich etwas? Ich bin für jeden Tip sehr dankbar!!! Gruß Andy
Das glaube ich nicht. Ich habe gerade versucht, den Make-Aufruf über das DOS Prompt aus dem richtigen Verzeichnis aus aufzurufen. Gleiches ergebnis. Und wie gesagt, wenn ich den gcc Befehl direkt ausführe, dann funktioniert alles nur im Makefile nicht.
Andreas Schmidt schrieb: > Das glaube ich nicht. Das glaube ich doch. Das Makefile wechselt in ein anderes Verzeichnis, wahrscheinlich hat es mit der übergebenen ROOT_DIR Variable zu tun die auf C:/RoboCar/testWorkspace/RoboCar gesetzt wird. Ändere einmal das Makefile auf dep: $(COMMON_SRCS) $(SAM7_SRCS) dir $(CC) $(INC_FLAGS) -MM $^ > $@ dann wird das Verzeichnis gelistet und Du siehst wo du bist.
Dann müsste der Compiler aber was erzählen von "File not found" oder so, und nicht "No input files". Klingt irgendwie danach, als würde make bei der Übergabe der Kommandoparameter irgendwo die Zeile abschneiden. Ist es sicher, dass das richtige make aufgerufen wird?
Das hatte ich auch schon probiert. Aber ich bekomme dann die Fehlermeldung, dass der Prozess dir nicht gefunden wurde. Was mich aber verwundert ist, dass wenn ich die Umleitung in eine Datei des Aufrufs $(CC) -MM weglasse, dass dann der Aufruf korrekt ausgeführt wird und die Depencies auf der Konsole angezeigt werden.
Das deutet eben alles auf eine Macke der Shell (Kommandoprozessor) hin, die da aufgerufen wird, um das Kommando auszuführen.
@Jörg: Ich habe nur ein make installiert welches auch im Path ist. In dem Test-Projekt gibt es im gesamten Verzeichnisbaum nur ein Makefile. Wenn ich die Konsolen-Ausgabe von dem Make Aufruf anschaue, dann wird (zumindest bei der Anzeige auf der Konsole) nichts abgeschnitten. Ich habe so die Vermutung, dass es irgendetwas mit der Umleitung > $@ zu tun haben muss.
Andreas Schmidt schrieb: > Wenn ich die Konsolen-Ausgabe von dem Make Aufruf anschaue, dann wird > (zumindest bei der Anzeige auf der Konsole) nichts abgeschnitten. Ja, aber die gibt ja das make selbst noch aus. Offenbar kommt es aber in dieser Form nicht mehr beim GCC an.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.