Ich habe folgende Make-Datei:Make denkt immer Projekt auf dem neuesten Stand ist - aber Dateien gibt es nicht einmal
CCC = g++ CCFLAGS = -ansi driver: driver.o graph.o $(CCC) -o driver driver.o graph.o graph.o: graph.h driver.o: graph.h adjl: rm -f graph.h graph.cc ln -s adjl/graph.cc . ln -s adjl/graph.h . touch graph.cc graph.h adjm: rm -f graph.h graph.cc ln -s adjm/graph.cc . ln -s adjm/graph.h . touch graph.cc graph.h clean: rm -f *.o real_clean: clean rm -f graph.cc graph.h rm -f driver
Die Idee ist, dass ich versuche, zwei verschiedene .cc/h-Dateien zu verknüpfen, je Auf welche Implementierung möchte ich zurückgreifen. Wenn ich real_clean mache, existiert keine der .cc/.h Dateien, ich habe nur eine driver.cc Datei und das Makefile im Ordner. Wenn ich make anrufe, heißt es, sie sind auf dem neuesten Stand. Dies passiert auch, wenn ich die Dateien in adjl/adm editiere, um sie zu "neueren" Versionen zu machen.
[95]% ls adjl/ adjm/ driver.cc makefile [96]% make adjl make: `adjl' is up to date. [97]% make adjm make: `adjm' is up to date.
nahm ich die Vorlage Make-Datei von einem anderen Projekt, das ich getan hatte, und sie werden auf die gleiche Art und Weise geschrieben, aber ich kann immer wieder die gleichen Befehle ohne „up to date“ Probleme machen.
ich gegoogelt habe, aber noch nicht (scheinen sie in der Regel Nutzer einzubeziehen, die Reinigung nicht, bevor sie) ein Problem wie bei mir gefunden.
Danke an alle zum Lesen.
macht sauber arbeiten? – Jason
It does, make und real_clean funktionieren beide. – Dwayne
Ich sehe was du meinst, aber es funktioniert. Ich habe gerade ein Makefile aus einer vorherigen Klasse kopiert und es funktioniert, mein Verständnis davon, wie sie funktionieren, ist jedoch sehr gering. – Dwayne