2016-08-22 2 views
2

Ich möchte den Inhalt einer Textdatei lesen und sie einer Variablen in meinem Makefile zuweisen. Ich las das Make Handbuch ch 8.6: Die Datei Funktion und schrieb diesen einfachen Code-Schnipsel in meiner Make-Datei:Makefiles: Lesen einer Datei mit 'pure make Syntaxis' (keine Shell-Befehle)

# Snippet from my makefile 

my_var = $(file < C:/full/path/to/my_file.txt) 

all: 
    @echo $(my_var) 

Ich erhalte die folgende Fehlermeldung:

*** Invalid file operation: < C:/full/path/to/my_file.txt. Stop. 

ich für den $ bewusst wählen (Datei ..) anstelle der $ (shell ..) -Funktion zum Auslesen der Datei. Das liegt daran, dass mein Makefile so plattformunabhängig wie möglich sein sollte. Die $ (file ..) -Funktion ist reine Makefile-Syntax, während die $ (shell ..) -Funktion Shell-Syntax enthält.

Was mache ich falsch?

+1

Lesen von einer Datei wurde in make 4.2 hinzugefügt, ich vermute, dass Sie eine ältere Version verwenden. – user657267

+0

aaw .. das tut weh. Ja, ich benutze make 4.1, das ich von dieser Seite heruntergeladen habe: http://www.equation.com/servlet/equation.cmd?fa=make Vielen Dank, dass du das hier aufgezeigt hast. Weißt du, wo ich 4.2 für Windows 64-Bit herunterladen kann? Vielen Dank @ user657267 für Ihre Hilfe :-) –

+0

https://nuwen.net/micingw.html – user657267

Antwort

3

Sie müssen auf mindestens 4.2 aktualisieren, wenn Sie Dateien mit $(file <) lesen möchten.