Claus schrieb:
> Ich hab make jetzt auch mal über das Terminal gestartet, dort kommt auch
> nur "MacBook-Pro-2:cyclop_osd dominikloher$ make
> foo++.cpp:1: *** missing separator. Stop.
> "
Aha, also versucht make aus irgendeinem Grund, deinen C++-Quellcode als
Makefile zu interpretieren.
Claus schrieb:
> Mir kommt das irgendwie komisch vor, lösche ich das cpp file
> verschwindet die Meldung. Beim Makefile wird doch immer das ganze file
> gelesen ?
Nun, dein Makefile findet automatisch alle Dateien, die auf .cpp enden
und verarbeitet sie:
1 | # List C source files here. (C dependencies are automatically generated.)
|
2 |
|
3 | SRC = $(wildcard *.c)
|
4 |
|
5 | # List C source files here. (C dependencies are automatically generated.)
|
6 |
|
7 | SRC = $(wildcard *.cpp)
|
Zuerst werden also alle Files, die auf .c enden nach $(SRC) geschrieben,
direkt danach werden die wieder verworfen und stattdessen alle Files,
die auf .cpp enden, dort hineingeschrieben.
Dein Problem liegt hier:
1 | DEPS = $(SRC:%.c=$(DEPSDIR)/%.d)
|
2 |
|
3 | -include $(DEPS)
|
Hier werden alle gefundenen Quellcode-Dateien hergenommen, die Endung .c
durch .d ersetzt und ins Makefile mit eingebunden. Das sind die
Dependancy-Files, die make für jedes File sagen, wovon es abhängt. Da
dein .cpp-File aber keine Endung .c zum ersetzen hat, wird der Name so
übernommen, wie er ist, und damit wird es direkt ins Makefile
eingebunden.