• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Makefile

Hi,

ich muss mit dem Intel-Compiler (icpc) ein Projekt kompilieren. Ich wollte dazu ein Makefile schreiben. Aber irgendwie komme ich nicht zurecht. Ich habe schon alle möglichen Skripte und Howtos durchsucht. Hilft alles nix.
Hier meine Makefile:

Code:
CXX=icpc
CXXFLAGS=-openmp

seminar.o :
	seminar.cpp matrix.h zeitmessung.h
	$CXX -o seminar.o seminar.cpp

matrix.o :
	matrix.h matrix.cpp
	$CXX -o matrix.o matrix.cpp
	
zeitmessung.o :
	zeitmessung.h zeitmessung.cpp
	$CXX -o zeitmessung.o zeitmessung.cpp
	
seminar:	
	seminar.o matrix.o zeitmessung.o
	$CXX -o seminar seminar.o, matrix.o, zeitmessung.o

Es kommt folgender Fehler:

karlblau@mlaptop:~/Dev/seminar> make seminar
seminar.o matrix.o zeitmessung.o
make: seminar.o: Kommando nicht gefunden
make: *** [seminar] Fehler 127
karlblau@mlaptop:~/Dev/seminar>


Was stimmt hier nicht?

Gruss,
Karl
 
A

Anonymous

Gast
KarlBlau schrieb:
Hier meine Makefile:

Code:
CXX=icpc
CXXFLAGS=-openmp

seminar.o :
	seminar.cpp matrix.h zeitmessung.h
	$CXX -o seminar.o seminar.cpp

matrix.o :
	matrix.h matrix.cpp
	$CXX -o matrix.o matrix.cpp
	
zeitmessung.o :
	zeitmessung.h zeitmessung.cpp
	$CXX -o zeitmessung.o zeitmessung.cpp
	
seminar:	
	seminar.o matrix.o zeitmessung.o
	$CXX -o seminar seminar.o, matrix.o, zeitmessung.o

Ich bin mir nicht so ganz 100% sicher, habe lange keine Makefile mehr von Hand geschreiben,aber wenn ich mich nicht ganz täusche dann musst du die Dateien von denen deine Regel abhängig ist noch in die selbe zeile schreiben. also
Code:
seminar.o : 	seminar.cpp matrix.h zeitmessung.h
	$CXX -o seminar.o seminar.cpp

matrix.o :	matrix.h matrix.cpp
	$CXX -o matrix.o matrix.cpp
	
zeitmessung.o :	zeitmessung.h zeitmessung.cpp
	$CXX -o zeitmessung.o zeitmessung.cpp
	
seminar:		seminar.o matrix.o zeitmessung.o
	$CXX -o seminar seminar.o, matrix.o, zeitmessung.o

hast du das schon mal probiert.??

robi
 

TeXpert

Guru
jepp, dependency-line muss in einer Zeile stehen und vor den cmd-lines muss ein Tabulator sein.

Wenn bei den Abhängigkeiten mehrere zeilen der Übersicht halber gewünscht sind, kannst Du das mit \ am Zeilenende machen
Code:
foo: bar1 \
     bar2 \
     bar3
und
Code:
foo: bar1 bar2 bar3
sind äquivalent
 
Danke für Eure Tipps, Ihr habt mir weitergeholfen!

Meine vorläufige Endversion (funktioniert):
Code:
CXX=icpc
CXXFLAGS=-openmp

seminar: seminar.o matrix.o zeitmessung.o
	$(CXX) $(CXXFLAGS) -o seminar seminar.o matrix.o zeitmessung.o

matrix.o : matrix.h matrix.cpp
	$(CXX) $(CXXFLAGS) -c -o matrix.o matrix.cpp
   
zeitmessung.o : zeitmessung.h zeitmessung.cpp
	$(CXX) $(CXXFLAGS) -c -o zeitmessung.o zeitmessung.cpp

seminar.o : seminar.cpp matrix.h zeitmessung.h
	$(CXX) $(CXXFLAGS) -c -o seminar.o seminar.cpp

Gruss,
Karl
 
Oben