[TUT] C/C++,make und depfiles nutzen (auch unter Windows) - Druckversion +- KINGx - Das inoffizielle PlayStation Forum & News Portal (http://www.kingx.de/forum) +-- Forum: PS Vita / PSP (/forumdisplay.php?fid=1) +--- Forum: Homebrew (/forumdisplay.php?fid=8) +---- Forum: Development (/forumdisplay.php?fid=34) +----- Forum: Dev-Tutorials (/forumdisplay.php?fid=59) +----- Thema: [TUT] C/C++,make und depfiles nutzen (auch unter Windows) (/showthread.php?tid=46559) |
[TUT] C/C++,make und depfiles nutzen (auch unter Windows) - ardi - 06.07.2011 23:43 Hallo, hier geht's nicht um LUA sondern um C, C++, make und Makefiles (wer weiß, was depfiles sind, was sich machen usw. aber wissen will, wie er sie auch unter Windows nutzen kann, kann zum Abschnitt "Der Trick" runterscrollen. zuerst einmal das Problem: Nehmen wir an, wir haben eine main.c und eine extra.c und beide includieren (main.h mit #include "main.h"). Jetzt compilieren wir unser Programm. Und alles ist gut. Jetzt kommen wir auf die Idee, und ändern main.c und main.h. Jetzt compilieren wir unser Programm. Und nichts ist gut. Die in make und im Makefile eingebauten Regeln (Rules) erkennen, das die main.o älter als die main.c ist und compiliert die main.c erneut. Aber was ist mit extras.c ??? Die enthält ja immer noch die veraltete main.h. Die Lösung: Es müssen also Extra-Rules her, die die Abhängigkeiten definieren. Das würde dann im Makefile so aussehen: Code: main.o : main.c main.h
Code: main.o : main.c main.h test.h
Code: main.o: main.c c:\pspsdk\psp\sdk\include\pspkernel.h ...
Das Problem hier ist das "c:\...". Da Rules die Zieldatei und die davon Abhängen Dateien mit einem Doppelpunkt verbindet, stört der Doppelpunkt, zwischen Laufwerk und Pfad. Code: include $(PSPSDK)/lib/build.mak
und ändert das in: Code: include $(PSPSDK)/lib/build_with_deps.mak
... Fertig RE: [TUT] C/C++,make und depfiles nutzen (auch unter Windows) - 3m!n - 21.07.2011 15:39 Hallo, Super Tutorial ! Bin beeindruckt ~Em!nk123 |