Probleme mit gcc -MM im Makefile

Gast #1666841
Lesenswert?
• ▲
▼
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
Gast #1667139
Lesenswert?
• ▲
▼
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.
#1667190
Lesenswert?
• ▲
▼
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.
Gast #1667445
Lesenswert?
• ▲
▼
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.
Gast #1667452
Lesenswert?
• ▲
▼
@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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.