Makefile Hilfe: Eingabedateien des Binders unbenutzt
-
Hallo,
ich habe ein ganz simples Makefile das bei mir den Fehler bringt:
Eingabedateien des Binders unbenutzt, da keine Bindung geschieht
Mein Makefile sieht so aus:
TARGET := prog CXXFLAGS := -c -O3 -Wall CXX := g++ LIBS := -llapack -L/usr/lib/atlas -lblas -latlas ../CSparse/Lib/libcsparse.a -lrt EXT := cpp OBJECTS = main.o Pattern.o Matrix_Base.o SOURCES := $(wildcard *.$(EXT)) OBJECTS := $(patsubst %.$(EXT), %.o, $(SOURCES)) .PHONY: all all: $(TARGET) $(TARGET): $(OBJECTS) $(CXX) $(CXXFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) .PHONY: clean clean: rm *.o
wo liegt mein fehler?
-
Das liegt nicht an der Makefile, sondern daran, wie du den Compiler aufrufst. Wenn du das -c-Flag setzt, dann linkt der GCC nicht (daher gehört das -c-Flag nie nie niemals in die CFLAGS oder CXXFLAGS). Also ignoriert er auch die ganzen -l-Flags etc. (und davor warnt er dich berechtigterweise.
Siehe man: gcc
-
danke rüdiger - so gehts jetzt natürlich -
weitere Frage:
Warum geht einclean: rm -rf *.o
nicht? Also die .o files liegen immer noch rum....
-
Hi,
Ein "clean" wird nicht automatisch mit jeder Kompilierung aufgerufen, es gezielt aufgerufen werden:
% make cleanSiehe auch:
http://cprogramming.com/tutorial/makefiles.htmlGruß Luis
-
@Luis
Der Thread ist von 2007. Ich denke nicht, dass eine Antwort jetzt noch Sinn macht...