Problem mit make: Makro definieren
-
Hallo,
ich schreibe gerade an einem Programm für Linux und Windows.
Damit ich die betriebssystemspeziefischen Teile alle in einem Projekt behandeln kann, habe ich einfach den Code so aufgeteilt:#if defined(_WIN32)
//Teil für Windows
#elif defined(_LINUX_)
//Teil für Linux
#endifUnter Windows klappt das auch ganz gut mit Dev-C, aber unter Linux habe ich ein Problem mit dem Makefile:
Wenn ich es per Hand mache, also
g++ -D _LINUX_ -c main.cpp -o main.o
funktionierts einwandfrei ohne Fehler
Schreib ich dann aber mein MakefileBIN = netpipe OBJ = main.o netpipe.o $(BIN): $(OBJ) $(CXX) $(OBJ) -o $(BIN) $(LIBS) $(CXXFLAGS) main.o: main.cpp $(CXX) -D _LINUX_ -c main.cpp -o main.o $(CXXFLAGS) netpipe.o: netpipe.cpp $(CXX) -D _LINUX_ -c netpipe.cpp -o netpipe.o $(CXXFLAGS)
dann definiert er mein Makro nicht und führt nur
g++ -c main.cpp -o main.o
aus
Was tun?
Mfg S.W.
-
der genaue Grund fällt mir jetzt nicht sofort auf. Aber schreib doch einfach CXXFLAGS = -D _LINUX_
Ansonsten schau dir einfach mal die Ultimative Makefile aus der rudpf FAQ an.
-
Ok Fehler gefunden:
Mein Makefile habe ich aus Versehen unter dem Namen "make" gespeichert.
Irgendwie hat er trotzdem den make Befehl ausgeführt, aber wohl alles falsch interpretiert.
"make" nach "makefile" umbenannt und es ging