2012-04-10 15 views
0

Ich führe den folgenden Befehl in meinem Makefile. Es gibt mir einen Fehler, wenn ich Datei2 öffnen muss. Mit anderen Worten, wenn Änderungen in file1.c basierend auf den von mir ausgewählten Switches vorgenommen werden, schlägt das make genau an dieser Zeile fehl.Ausführen von Befehlen in Makefile

unifdef -DSW1 -DSW2 -USW3 file1.c >file2.c 

Okay, unifdef ist ein Dienstprogramm, das teilweise Vorverarbeitung für mich tut. file1.c wird in unidefdef eingegeben und file2.c wird ausgegeben. Mein Makefile ist einfach und ich habe keine Abhängigkeiten zu file1.c oder file2.c. Makefile-Abhängigkeiten funktionieren in Ordnung.

Danke,

+3

Welche Fehler erhalten Sie? Und warum glaubst du, dass das mit 'make' zu ​​tun hat, aber zeige keine Teile deiner' Makefile'? –

+0

Ist das eine Aktion, die sich auf eine Abhängigkeit zwischen 'Datei1' und' Datei2' bezieht? Etwas anderes? – dmckee

+6

Wenn ich deine vorherigen Fragen ansehe, sehe ich, dass sie auch ziemlich ungenau und leicht spezifiziert sind. Vielleicht würde das Lesen des Dokuments [wow to ask] (http://stackoverflow.com/questions/how-to-ask) Ihnen Anhaltspunkte für zukünftige Fragen geben. Die Sache, die du beachten solltest, ist, dass du, während du an dem Problem gearbeitet hast und weißt, was du machen willst *, haben wir keinen Kontext *, also musst du es uns sagen. – dmckee

Antwort

0

standardmäßig unifdef mit dem Statuscode verlässt 1, wenn es irgendwelche Änderungen an der Eingabedatei macht. Machen Sie Leckereien als Fehler. Sie können make veranlassen, den Exit-Status zu ignorieren, indem Sie dem Befehl einen -

Version 2.7 von unifdef (die im März 2013 veröffentlicht wurde) eine Option -x zuweisen, um die Exit-Status-Logik zu steuern, damit es besser spielt machen. Vielleicht möchten Sie -x1 verwenden, damit make sicherstellt, dass unifdef tatsächlich Änderungen vorgenommen hat. Siehe http://dotat.at/prog/unifdef/

Verwandte Themen