Ich habe einen Code als
echo -e "\\n" "===== Making: $(@D)\n";\
if [! -d $(@D) ]; then \
mkdir $(@D); \
else \
if [ -e $(@D)\PackageBuild.error ]; then \
rm $(@D)\PackageBuild.error;\
fi; \
Ich bin mir nicht sicher, was dieses @D tut. kann mir hier jemand weiterhelfen
Lösung des Problems
Führt normalerweise den $(command)
Befehl aus und ersetzt ihn $(command)
durch die Ausgabe des Befehls. Es muss also eine Datei namens @D geben, die ausführbar ist und sich im Suchpfad befindet.
Aber wenn dies kein Shell-Skript ist, sondern eine Make-Datei, bedeutet dies:
$(@D)
Der Verzeichnisteil des Dateinamens des Ziels, wobei der nachgestellte Schrägstrich entfernt wurde. Wenn der Wert von $@
ist, dir/foo.o
dann $(@D)
ist
dir
. Dieser Wert ist, .
wenn $@
er keinen Schrägstrich enthält.
Keine Kommentare:
Kommentar veröffentlichen