Ich schreibe ein kleines C-Programm zum Spaß. Ich entschied mich, MinGW (nur C), make und Notepad ++ als Übung zu verwenden, um keine ausgefallenen IDEs zu verwenden. So weit, so gut und lustig.Tragbare make clean Regel
(MinGW == Ich arbeite unter Windows.)
Jetzt, da das Programm gegen C Vanille kompiliert dachte ich, es voll tragbar zu machen. MinGW machen und gcc ist intelligent genug, um ein Programm aus der Regel zu erstellen:
myprog: myprog.o other.o
$(CC) $(CFLAGS) $(LDFLAGS) $^ -o [email protected]
Offensichtlich, da ich auf Windows bin der Compiler erstellt myprog.exe
. Das ist ziemlich schlau und macht die ganze Sache ziemlich tragbar.
Soweit standard targets gehe ich möchte mindestens clean
implementieren, da ich tatsächlich diese Regel verwenden. Nun ist das saubere Ziel, die auf Windows tatsächlich funktioniert wie folgt aussieht:
clean:
rm myprog.exe *.o
Diese Regel wird auf jeden Fall nicht in einer POSIX-Umgebung arbeiten, weil Programme nicht Erweiterungen gibt. (PSOIX: Think GNU/Linux)
Gibt es einen portablen Weg, ein sauberes zu implementieren, ohne viel zu machen?
Bisher habe ich keine wirklich nützliche Dokumentation zu diesem Thema gefunden. Wenn Sie sich ansehen, wie autoconf und automake das Problem angehen, führen sie das Muster @[email protected]
ein. Aber das erfordert einen langen Konfigurationscode, der die Umgebung testet.
Was ist los mit 'rm -f myprog myprog.exe * .o'? – Beta
Haben Sie jemals versucht, das unter Linux auszuführen? Funktioniert nicht ... Die Frage bezieht sich auf Trinkbarkeit; Die Regel funktioniert gut auf Mingw. – rioki
Ja, ich habe, und es funktioniert auf meiner Version (2.6.18-194.8.1.el5). Was ist dein Fehler? (Und warum sollten Sie es trinken wollen?) – Beta