make lässt zu viel compilieren

Gast #1541441
Hallo Experten,
habe ein funktionierendes ziemlich komplexes Makefile, alles läuf 
wunderbar, jedoch stimmt irgend etwas mit den Abhängigkeiten nicht.
nach einem erfolgreichen "make all" sollte doch ein erneutes "make all" 
nichts mehr compilieren, wenn an den Quellen nichts verändert worden 
ist, oder???

Alle *.c Dateien, die Bibliotheksheader, wie z.B. string.h includieren, 
werden komischerweise immer wieder neu übersetzt. Wenn ich das include 
und die Funktionsaufrufe rausnehme, funktioniert es. (Die Datei wird 
also nicht neu übersetzt.)

make -d all zeigt folgende komische Meldung:

File 
`/cygdrive/c/programme/gnuarm4.2.2/bin/../lib/gcc/arm-elf/4.2.2/../../.. 
/../arm-elf/include/string.h'  does not exist.

Die Datei existiert sehr wohl, wenn ich sie lösche, bricht der Compiler 
korrekterweise ab. Habe auch schon die ursprünglich nicht vorhandenen 
Unterverzeichnisse erzeugt, ohne Unterschied. Kann das ein Hinweis sein? 
Ich verstehe nicht, wo das Problem wirklich liegt?

Danke für alle Hinweise.
Thomas.
#1541468
Hi,

> habe ein funktionierendes ziemlich komplexes Makefile,
seltsam ich kann das in meiner Glaskugel nicht sehen hmmmm...

=> bitte anhängen

> "make all" sollte doch ein erneutes "make all"
> nichts mehr compilieren, wenn an den Quellen nichts verändert worden
> ist, oder???
richtig
#1541499
Bist du sicher, dass die Datei existiert.
Wenn wir den Pfad
`/cygdrive/c/programme/gnuarm4.2.2/bin/../lib/gcc/arm-elf/4.2.2/../../.. 
/../arm-elf/include/string.h'
mal um alle relativen Bezüge bereinigen, dann kommt da

/cygdrive/c/programme/gnuarm4.2.2/lib/arm-elf/include/string.h

dabei raus.
Moderator Persönliche Seite #1541536
Könnte ein cygwin-Problem sein.  /cygdrive/c ist ja ein fiktiver
Pfadname in Cygwin.  Wenn nun ein normales Windows-Make das
Äquivalent von stat() auf diese Datei macht, findet es sie natürlich
nicht, du musst dann zwingend ein Cygwin-Make benutzen, weil dieses
über die Posix-Emulation dann auch die Datei sieht.

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.