Cpp lässt sich nicht bauen

Gast #4707832
Lesenswert?

Hallo,
ich habe das Xavr template für Xcode installiert dieses Makefile ist 
aber nicht mehr aktuell bzw lässt kein .cpp zu.
Ich hab s jetzt mal umgeschrieben, bekomme aber jetzt die Fehler Meldung 
"missing separators. Stop" wenn ich nur eine .cpp erzeuge die aber noch 
nicht includiere.
Kann man mir noch helfen ? :D

Gruß
Angehängte Dateien:
Gast #4707851
Lesenswert?

> Kann man mir noch helfen ? :D
Mit der kompletteren Fehlermeldung, welche
die exakte Position sogar mitteilt, ginge
das viel besser.

eine Möglichkeit:
Dort gehörte nämlich ein Tabulator hin, anstatt von
Leerzeichen.

eine bessere:
frag die Suchmaschine deiner Wahl, und
hilf dir selbst
Gast #4707852
Lesenswert?

Zu dem, die Meldung kommt nur wenn das cpp im selben Ordner und auch 
noch nicht includiert habe.
Mir kommt das irgendwie komisch vor, lösche ich das cpp file 
verschwindet die Meldung. Beim Makefile wird doch immer das ganze file 
gelesen ?
#4707878
Lesenswert?

>Mir kommt das irgendwie komisch vor, lösche ich das cpp file
>verschwindet die Meldung. Beim Makefile wird doch immer das ganze file
>gelesen ?
Da scheint irgendetwas im Argen zu liegen. Möglicherweise schon bei der 
Installation?

Eine fehlende Datei (gelöscht) sollte einen ganz eindeutigen Meckerer 
produzieren.

Ein Makefile wird immer ganz gelesen. Ob dann auch eine, ein paar oder 
alle Zeilen abgearbeitet werden steht auf einem anderen Blatt. Bei den 
meisten make-Programmen gibt es eine Testmöglichkeit 
(Kommandozeilenparameter), mit der Du überprüfen kannst, was im Falle 
eines Falles abgeht.

Sind die ausgegebenen Fehlermeldungen denn so geheim oder schweinisch, 
dass Du sie uns nicht zeigen kannst?
Gast #4707908
Lesenswert?

Eben nicht aber wie schon erzählt steht da genau das was ich schon 
geschrieben habe.
Mit der Console kom ich klar, nur müsste ich wissen was und wie.
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.
"

Gruß
Angehängte Dateien:
#4708034
Lesenswert?

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.
Gast #4708345
Lesenswert?

Danke,schon mal.
Ich hab hier gleich was vergessen, das muss natürlich CPPSRC heißen 
weiter unten wurde die Variable dann auch verwendet aber durch den 
Fehler nie beschrieben.

"OBJ = $(addprefix $(OBJDIR)/,$(SRC:.c=.o)) $(addprefix 
$(OBJDIR)/,$(CPPSRC:.cpp=.o)) $(addprefix $(OBJDIR)/,$(ASRC:.S=.o))
"

Ich werde es heute Abend mal abändern und testen.

Gruß
Gast #4711203
Lesenswert?

Kann es vielleicht ein Problem sein, dass es eine *.hpp-Datei ist?
Siehe Bild: Beitrag "Re: Cpp lässt sich nicht bauen"

Es scheint auch verbindungen zu fehlenden Symbolen zu geben, siehe diese 
2 Threads:
http://stackoverflow.com/questions/16336244/unknown-type-name-class#16564736
http://stackoverflow.com/questions/12110184/c-undefined-symbols-for-architecture-x86-64-when-compiling-on-mac-osx-lion

Hast du schon mal versucht das ganze von Hand zu compilieren, also ohne 
make usw?
Gast #4711220
Lesenswert?

An die Endung hatte ich auch schon gedacht jap, leider hats nichts 
geholfen.Von hand nein, ich wusste ehrlich gesagt nicht wie das geht 
aber ich teste es dann gleich mal dazu lässt sich sicher was finden.
#4713301
Lesenswert?

Du versuchst eine .hpp Datei zu compilieren.

Abgesehen davon, daß C++ Quelldateien üblicherweise mit der Endung .cpp, 
.c++ oder .C benamst werden, enthält dein Makefile keine Regeln, um mit 
.hpp's (das - so wie's aussieht - als include-Datei gedacht ist) 
irgendwas sinnvolles anzustellen.

Gib' dem Compiler ein .C zu fressen und lese dort deine .hpp-Datei per 
#include.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren