Erste Schritte mit makefiles. Wo liegt mein Fehler?



  • Hallo liebe Leute.
    Ich teste grade ein wenig an makefiles herum und bin was das angeht noch etwas hilflos da mir alles ein wneig unübersichtlich erscheint.
    In meinem aktuellen Projekt möchte ich einfach 3 .cpp Dateien in object-files kompilieren und dann alle drei .o Dateien zusammenlinken.
    Das ganze sieht bei mir grad erstmal so aus:

    CC := g++
    CFLAGS :=
    LDFLAGS :=
    LDLIBS:= -lstdc++
    SILENT := @
    ECHO := echo
    MODULES = Bin2dec Dec2bin main
    SRC = $(MODULES:%=%.cpp)
    OBJ = $(SRC:%.cpp=%.o)
    
    all: Konverter
    
    Konverter: Dec2Bin.o Bin2dec.o main.o
    	@echo "--- Creating EXE ---"
    	@ g++ $^ -o $@ 
    
    main.o: main.cpp
    	@echo "--- Compiling $< ---"
    	@ g++ -c $<
    
    Bin2dec.o: Bin2dec.cpp
    	@echo "--- Compiling $< ---"
    	@ g++ -c $<
    
    Dec2bin.o: Dec2bin.cpp
    	@echo "--- Compiling $< ---"
    	@ g++ -c $<	
    
    .PHONY: clean
    clean:
    	@ echo "Objectfiles entfernen"
    	@ rm -f *.o
    

    Meine Konsole behauptet nun soetwas wie: "Multiple definition of main, first definiton in Dec2bin.
    Woher kommt der Fehler? Ich erkenne hier keine mehrfach Definition o.O
    Ich hab zwar oben bereits mehrere Automatische Variablen definiert, aber noch nicht benutzt, da ich kleinschrittig vorgehen wollte.

    Liebe Grüße und vielen Dank für jede Antwort.



  • Das wirst du wohl in Dec2Bin.cpp und in main.cpp beides Male int main() { ... } irgendwas drin haben, so ist meine Vermutung.



  • Dieser Thread wurde von Moderator/in Arcoth aus dem Forum C++ (alle ISO-Standards) in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Sry hat sich schon erledigt 🙂 Hab nur auf meine makefile geguckt und nicht in meine Sourcecodes 🙂


Anmelden zum Antworten