PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : make Problem: Interpretation Backslashes



thdrummer
20.04.2009, 10:22
Hallo miteinander,

ich habe ein Problem mit "make":

Bevor ich meinen Pc neu installieren musste (Windows XP etc.), hat mein makefile einwandfrei funktioniert. Ich verwende darin

Pfadangaben, die durch einen Backslash "\" angegeben sind. Seit der Neuinstallation von Windows und cygwin (gleiche Version

etc...) funktioniert das Makefile jedoch nicht mehr:
Die Backslashes werden als Zeilenumbruch interpretiert, aus zum Beispiel "C:\prog\cygwin\bin\" im Makefile wird "C:progcygwinbin". Eine Lösung wäre natürlich, die Backslashes durch ein "/" zu ersetzen. Jedoch funktionieren dann relative Pfadangaben wie ".\prog\bin" nicht mehr.

Kann mir jemand bitte sagen, warum das nicht mehr funktioniert?
Was schalgt ihr als Abhilfe vor?

Vielen Dank schonmal!

Gruß
thdrummer

thewulf00
20.04.2009, 10:30
Deine Backslashes werden als Escape-Sequenz interpretiert. Es gibt auch eine Escape-Sequenz für ein Backslash, nämlich einfach zwei benutzen: '\\'

Versuch einfach mal, alle Backslashes, die fehlen, durch zwei zu ersetzen:
C:\\prog\\cygwin\\bin\\

thdrummer
20.04.2009, 11:06
Danke für deine schnelle Antwort!
Das mit den doppelten Backslashes funktioniert, das ist klar. Aber warum hat es vorher funktioniert und warum funktioniert es jetzt nicht mehr?
Ein Problem bleibt trotzdem noch: Was mache ich mit der relativen Pfadangabe wie ".\prog\bin" ?

Danke schonmal!

thewulf00
20.04.2009, 11:25
Relativ: Auch einfach mit Doppel-Backslash unescapen.

Ich nehme an, dass jetzt der Cygwin-Befehlsinterpreter (cygwin-make) geladen wird, anstatt der von Windows (winavr-make). Genau kann ichs natürlich nicht wissen.

thdrummer
20.04.2009, 12:12
Winavr habe ich gar nicht installiert, von daher kann es dieser nicht sein.

Kann ich das über eine Kommandozeile o.ä. prüfen, welches make geladen wird? Zum Beispiel über eine Versionsausgabe auf der Kommandozeile o.ä.?

Danke schonmal!

thewulf00
20.04.2009, 12:44
Ja, das geht. Für die genaue Anweisung siehe Hilfe, oder Google.
Ansonsten probier mal "make -v"