makefile findet dateien nicht?



  • mein makefile funktioniert aus irgendwelchen gründen nicht:

    CC = g++
    WFLAGS = -Wall -Wextra
    IPATH = -I "I:\Eigen 3.2.7\include"
    CFLAGS = $(IPATH) $(WFLAGS) -std=c++14 -O3 -fexpensive-optimizations
    LDFLAGS = 
    VPATH = src
    SOURCES = $(notdir $(wildcard $(VPATH)/*.cpp))
    OBJDIR = obj
    OBJECTS = $(patsubst %.cpp, %.o, $(SOURCES))
    EXECUTABLE = Aladdin.exe
    BUILDDIR = bin
    
    default: all
    
    all: $(BUILDDIR)/$(EXECUTABLE)
    
    $(BUILDDIR)/$(EXECUTABLE): $(OBJDIR)/$(OBJECTS)
    	$(CC) $(LDFLAGS) $(OBJECTS) -o $<
    
    $(OBJDIR)/$(OBJECTS): $(VPATH)/$(SOURCES)
    	$(CC) $(CFLAGS) -c $< -o $@
    
    $(OBJDIR)/main.o: main.cpp
    	$(CC) $(CFLAGS) -c main.cpp
    
    clean:
    	rm $(OBJECTS) *.o
    

    mit der ausgabe:

    MAKE Version 5.3  Copyright (c) 1987, 2008 CodeGear
    Error MAKEFILE 21:  No match found for wildcard 'src//*.cpp))'
    *** 1 errors during make ***
    

    meine ordnerstruktur sieht so aus:

    -projekt
    |
    + main.cpp
    |
    +-src
      |
      + foo.cpp
    

    was mache ich falsch?



  • mal mit GNU make probiert?



  • meinst du gmake? ich kenn mich da nicht so gut aus aber ich glaube, ich habe ein make, das gnu make konform ist (das, das mit mingw kommt). die doku zu gnu make online stimmt jedenfalls überein und ich hab damit auch erfolgreich sfml kompiliert. meine anderen makefiles haben auch immer funktioniert aber hier will es nicht so richtig klappen...



  • mundspülung schrieb:

    (das, das mit mingw kommt)

    Das hat mein universal makefile immer geschluckt, damit hab ich's ja zum Teil genmacht.

    Mir fällt auf, daß Du mal / und mal \ nimmst.

    Aber Du hast echt übersehen, daß dein make in der ersten Ausgabezeile rumheult

    CodeGear schrieb:

    Hilfe, ich bin Müll



  • mundspülung schrieb:

    meinst du gmake? ich kenn mich da nicht so gut aus aber ich glaube, ich habe ein make, das gnu make konform ist (das, das mit mingw kommt).

    "ich glaube, ich habe ein make" ist gut 🙂

    gib mal im mingw-Terminal ein:

    which make
    make --version

    und schau' mal mit

    echo $PATH

    nach, welche make.exe da so vorkommen.


Anmelden zum Antworten