Seite 1 von 1

Probleme mit GNU Make

Verfasst: Mi Dez 12, 2012 6:22 pm
von gizno82
Hallo liebe Proggen Gemeinde,

Ich versuche gerade SDL unter Debian zum laufen zu bekommen.
Ich möchte GNU Make zum linken, compilieren, etc. nutzen.

Ich habe alles nach einem Tutorial schritt für Schritt gemacht.

http://compsci.ca/v3/viewtopic.php?t=10411

Wenn ich in der Linux Konsole make eingebe spuckt mir GNU Make folgendes aus:

makefile:44: *** missing separator (Meinten Sie TAB anstelle von 8 Leerzeichen?).

ich beschäftige mich das erste mal mit Makefiles und habe gelesen, dass jede neue Zeile mit einem Tab anfangen muss.
In Zeile 44 meines Makefiles ist aber ein Tab am Zeilenanfang.

Wäre nett wenn mir jemand helfen könnte.

Hier mal mein Makefile:

Code: Alles auswählen


#
#   Default make file
#

########
#   Directories
S_DIR=source
B_DIR=build

########
#   Output
EXEC=$(B_DIR)/SDL_test.exec
   
# default build settings
##  debug setup
CC_OPTS=-c -pipe -Wall -Wno-switch -ggdb -g3 
LN_OPTS=
CC=g++
##  release setup
#C_OPTS=-c -pipe
#LN_OPTS=
#CC=g++

######## maybe change here
#       SDL options
CC_SDL=-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
LN_SDL=-L/usr/lib -lSDL

########
#   This is the default action
all:Build


########
#   Object list
#
OBJ = $(B_DIR)/main.o

########
#   Objects
	$(B_DIR)/main.o : $(S_DIR)/main.cpp $(S_DIR)/global.h
	$(CC) $(CC_OPTS) -o $(B_DIR)/main.o $(S_DIR)/main.cpp $(CC_SDL)

########
#   Main build rule     
Build : $(OBJ) Makefile
	$(CC) $(LN_OPTS) -o $(EXEC) $(OBJ) $(LN_SDL)


clean:
	rm -f $(B_DIR)/* 
Danke für eure Hilfe

Gruß Gizno

Re: Probleme mit GNU Make

Verfasst: Mi Dez 12, 2012 9:38 pm
von fat-lobyte
Hallo.
Die Fehlermeldung sagt dir schon ganz genau was verkehrt ist: "Meinten Sie TAB anstelle von 8 Leerzeichen?"

Die meisten Editoren sind für Code so eingestellt, dass sie jedes TAB durch 2,4 oder 8 Leerzeichen ersetzen. In Quellcode ist das OK oder sogar erwünscht, allerdings braucht GNU Make tatsächlich einen "echten" Tab (\t). Die Frage ist nun, wie du den da reinbekommst.

Das hängt von deinem Editor ab (es gibt sogar welche die Klug genug sind, in Makefiles Tabs statt leerzeichen zu verwenden).
Du kannst aber auf jeden Fall einstellen, dass du in deinem Editor tatsächlich Tabs (und keine Spaces) haben willst. Nach dem Bearbeiten des Makefiles nicht vergessen alles wieder zurückzustellen.

Ich mach das so: ich schreibe das Ursprungsmakefile mit den Tabs als Tabs einstellungen, und speichere es ab. Dann stelle ich den Editor auf Tabs als Spaces.
Wenn ich das Makefile bearbeite, vergesse ich das meist und bekomme eine Fehlermeldung. Daraufhin kopiere ich mir ein "echtes" Tab (mit Ctrl-C) und füge es an der richtigen Stelle ein.

Re: Probleme mit GNU Make

Verfasst: Do Dez 13, 2012 5:02 pm
von gizno82
Das Problem ist, dass mein Editor (Gedit) shcon entsprechend eingestellt ist und in Zeile 44 auch nichts steht.
Was für einen Editor nutzt Du zum erstellen von Makefiles ?
Gibt es unter Linux ein Tool, dass die Formatierung "Makefile Kompatibel" macht ?

Danke für die Hilfe

Grüße

Gizno

Re: Probleme mit GNU Make

Verfasst: Do Dez 13, 2012 9:21 pm
von deung
Also ich nutze gedit oder geany. Ist eigentlich egal was von Beiden. Man kann eigentlich jedem Editor so einstellen, dass er Leerzeichen statt Tabulatoren macht und umgekehrt. Man kann sogar sagen wieviele Leerzeilen ein Tabulator entspricht.
Gibt es unter Linux ein Tool, dass die Formatierung "Makefile Kompatibel" macht ?
Ich würde sagen alles nur eine Frage der Einstellung und der Gestaltung der Makefiles.
Was mich angeht benutzte ich auch gedit für die Makefiles

Re: Probleme mit GNU Make

Verfasst: Do Dez 13, 2012 10:22 pm
von fat-lobyte
Kannst du deine Datei mal an deinen Post anhängen, damit man mal ganz genau schauen kann was da tatsächlich in Zeile 44 steht? Ich glaube die Forensoftware spielt mir da einen Streich.

Re: Probleme mit GNU Make

Verfasst: Do Dez 13, 2012 10:46 pm
von gizno82
Danke für alles, finde ich echt super das Du mir hilfst.
Im Anhang befindet sich mein makefile.
entferne das .txt wieder hab zum hochladen noch die .txt Dateiendung an gehängt, da die Foren software probleme macht, wenn man eine Datei ohne Dateiendung hochladen möchte.
Gibt es ein gutes makefile tutorial ?

Grüße gizno

Re: Probleme mit GNU Make

Verfasst: Fr Dez 14, 2012 12:09 am
von fat-lobyte
So, im Endeffekt wars die Zeile 42.

Schau mal genau da hin: du hast eine Regel in Zeile 41, und ein "Rezept" in Zeile 42. Diese ist aber nicht eingerückt! Rezeptzeilen müssen immer eingerückt werden.

Übrigens bin ich mir ziemlich sicher, dass deine Einrückungen noch immer aus Leerzeichen bestehen, und nicht aus Tabulatoren (siehe Zeilen 48 und 52).
Danke für alles, finde ich echt super das Du mir hilfst.
Kein Problem, entgegen anderslautenden Gerüchten helfe ich gerne ;-)
Gibt es ein gutes makefile tutorial ?
Wie du Google verwendest wirst du wahrscheinlich wissen, aber empfehlen kann ich dir leider keines. Ich habs "on the go" gelernt, und dabei immer wieder in der offiziellen Anleitung nachgekuckt. Für Einsteiger ist die wahrscheinlich nicht so hilfreich.

Re: Probleme mit GNU Make

Verfasst: Fr Dez 14, 2012 11:25 am
von Fisherman
Gibt es ein gutes makefile tutorial ?
Makefile YT

Re: Probleme mit GNU Make

Verfasst: Fr Dez 14, 2012 6:38 pm
von Xin
gizno82 hat geschrieben:Gibt es ein gutes makefile tutorial ?
Lokal nur ein kleines: Makefiles
Wenn Du dazu Fragen hast, kann ich es entsprechend erweitern.