[Build Error] *** multiple target patterns. Stop.



  • Hi,
    ich bekomme beim kompilieren eines kleines C-Projektes (nutze Dev-Cpp) folgenden fehler vom Compiler:

    29 E:\C Projekt\Makefile.win [Build Error] *** multiple target patterns.  Stop.
    

    Das Makefile wurde automatisch von Dev-Cpp erstellt, die betreffende Zeile sieht so aus:

    main.o: main.c C:/Dev-Cpp/include/stdio.h C:/Dev-Cpp/include/_mingw.h   C:/Dev-Cpp/include/stddef.h C:/Dev-Cpp/include/stdarg.h   C:/Dev-Cpp/include/sys/types.h C:/Dev-Cpp/include/stdlib.h   C:/Dev-Cpp/include/time.h funktionen.hg++.exe: -lwsock32: linker input file unused because linking not done
    

    Leerzeichen in den Pfadangaben sollen laut google zu soetwas führen, davon sehe ich allerdings keine.

    Ohne das verwenden des Parameters -lwsock32 (in den Compiler-Einstellungen) bekomme ich haufenweise Linkin-Errors für die ganzen Socket-Funktionen.

    Vorschläge? 🙂



  • vielleicht das C: ?



  • Nein das war es leider nicht. Durch etwas herumspielen hab ich festgestellt, dass es wohl der letzte Abschnitt ist, der die Probleme macht:

    funktionen.hg++.exe: -lwsock32: linker input file unused because linking not done
    

    Mit diesem Zusatz bekomme ich den alt bekannten "mutliple target patterns" error. Ohne ihn erhalte ich diverse Linking-Errors:

    [Linker error] undefined reference to `WSAStartup@8'
    

    und das für jede Winsock Funktion.

    Bin völlig ratlos.



  • Zeig mal das ganze Makefile 😮



  • Da ist es.

    # Project: Netzwerkprojekt
    # Makefile created by Dev-C++ 4.9.9.2
    
    CPP  = g++.exe
    CC   = gcc.exe
    WINDRES = windres.exe
    RES  = 
    OBJ  = main.o uldl.o ipping.o log.o $(RES)
    LINKOBJ  = main.o uldl.o ipping.o log.o $(RES)
    LIBS =  -L"C:/Dev-Cpp/lib"  
    INCS =  -I"C:/Dev-Cpp/include" 
    CXXINCS =  -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"  -I"C:/Dev-Cpp/include/c++/3.4.2/backward"  -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32"  -I"C:/Dev-Cpp/include/c++/3.4.2"  -I"C:/Dev-Cpp/include" 
    BIN  = Netzwerkprojekt.exe
    CXXFLAGS = $(CXXINCS)   -s -std=c99 -pedantic -Wall -Wextra -lwsock32
    CFLAGS = $(INCS)   -s -std=c99 -pedantic -Wall -Wextra -lwsock32
    RM = rm -f
    
    .PHONY: all all-before all-after clean clean-custom
    
    all: all-before Netzwerkprojekt.exe all-after
    
    clean: clean-custom
    	${RM} $(OBJ) $(BIN)
    
    $(BIN): $(OBJ)
    	$(CC) $(LINKOBJ) -o "Netzwerkprojekt.exe" $(LIBS)
    
    main.o: main.c C:/Dev-Cpp/include/stdio.h C:/Dev-Cpp/include/_mingw.h   C:/Dev-Cpp/include/stddef.h C:/Dev-Cpp/include/stdarg.h   C:/Dev-Cpp/include/sys/types.h C:/Dev-Cpp/include/stdlib.h   C:/Dev-Cpp/include/time.hg++.exe: -lwsock32: linker input file unused because linking not done
    	$(CC) -c main.c -o main.o $(CFLAGS)
    
    uldl.o: uldl.c C:/Dev-Cpp/include/stdio.h C:/Dev-Cpp/include/_mingw.h   C:/Dev-Cpp/include/stddef.h C:/Dev-Cpp/include/stdarg.h   C:/Dev-Cpp/include/sys/types.h C:/Dev-Cpp/include/stdlib.h   C:/Dev-Cpp/include/time.h C:/Dev-Cpp/include/winsock.hg++.exe: -lwsock32: linker input file unused because linking not done
    	$(CC) -c uldl.c -o uldl.o $(CFLAGS)
    
    ipping.o: ipping.c C:/Dev-Cpp/include/stdio.h C:/Dev-Cpp/include/_mingw.h   C:/Dev-Cpp/include/stddef.h C:/Dev-Cpp/include/stdarg.h   C:/Dev-Cpp/include/sys/types.h C:/Dev-Cpp/include/stdlib.hg++.exe: -lwsock32: linker input file unused because linking not done
    	$(CC) -c ipping.c -o ipping.o $(CFLAGS)
    
    log.o: log.c C:/Dev-Cpp/include/stdio.h C:/Dev-Cpp/include/_mingw.h   C:/Dev-Cpp/include/stddef.h C:/Dev-Cpp/include/stdarg.h   C:/Dev-Cpp/include/sys/types.h C:/Dev-Cpp/include/stdlib.hg++.exe: -lwsock32: linker input file unused because linking not done
    	$(CC) -c log.c -o log.o $(CFLAGS)
    


  • Wtf? Warum hast Du Fehlermeldungen IN Deinem Makefile???



  • Probier mal am Ende das "C:/Dev-Cpp/include/time.hg++.exe: -lwsock32: linker input file unused because linking not done" zu entfernen und in zeile 7 -lwsock32 anzuhängen.



  • Die Frage hab ich mir auch schon gestellt...

    hier die neue Compilermeldung, wenn ich die Zeilen entfernt habe und in Zeile 7 -lwsock32 eingfügt habe:

    E:\C Projekt\makefile [Build Error]  No rule to make target `-lwsock32', needed by `Netzwerkprojekt.exe'.  Stop.
    


  • Ach quatsch. Mein Tipp war falsch. Hänge das -lwsock32 an Zeile 10 an, die die mit LIBS = ... beginnt, nicht an Zeile 7.



  • Ein Traum 🙂 Es funktioniert! Besten Dank für die Hilfe 🙂



  • Schmeiss Dev-C++ weg, dann passiert sowas nicht.


Anmelden zum Antworten