2009-10-22 6 views

Antwort

27

GNU make (und viele andere) hat zwei Hauptarten, Variablen Variablen zuzuweisen. Sie unterscheiden sich je nach Betreiber, den Sie verwenden. Gemäß the documentation verursacht ein einzelnes Gleichheitszeichen (=) eine rekursive Erweiterung des Werts, während ein Doppelpunkt (:=) eine einfache Erweiterung verursacht.

Ihr zitierter Code verwendet eine := und so sollte verursachen eine einfache Erweiterung. Was Sie sehen, ist eine Fehlermeldung, die einer rekursiven Erweiterung zugeordnet ist. Ich würde diese Art von Fehlern erwarten, wenn Sie so etwas wie dies haben:

PATH = $(PATH):/other/dir 

Kann der Fehler durch eine andere Zeile in der Make-Datei verursacht worden sein, die Sie nicht zitiert? Wenn Sie sicher sind, dass das Ausschneiden und Einfügen korrekt ist und dass diese Linie das Problem verursacht, wäre es hilfreich, wenn wir das gesamte, nicht editierte Makefile sehen könnten.

+0

ich jede Art und Weise habe ich versucht, von zu neuen Ordnern auf den Pfad denken konnte, unter Beibehaltung der bereits vorhandenen. Kein Glück. Schließlich entschied ich mich, die benötigten Verzeichnisse im PATH zu kodieren. – Geo

+0

@Geo, wenn du nicht verstehst und versuchst, was Tim vorgeschlagen hat, macht es seine Antwort nicht falsch und nicht akzeptabel. –

-5

versucht $ (PATH) auf $ {PATH}

1

Eine weitere Möglichkeit, die Shell-Funktion Wechsel zu verwenden ist:

PATH = $(shell printenv PATH):/other/dir

Verwandte Themen