TweakPC

Zurück   Computer Hardware Forum - TweakPC > Games und Software > Programmiersprachen

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25.07.2005, 11:22   #1 (permalink)
Neuling
 

Registriert seit: 25.07.2005
Beiträge: 2

Wissensdurstiger befindet sich auf einem aufstrebenden Ast

Standard makefile für c-programm

Hi.

Hab ein c-programm geschrieben, das aus den Quelldateien
[font=Courier New]main.c, einausgabe.c und berechnung.c[/font] besteht und eine Headerdatei [font=Courier New]headerdatei.c[/font] enthält.

Wenn ich dieses Programm mit

[font=Courier New]gcc -g -o programm main.c einausgabe.c berechnung.c[/font]

compiliere, funktioniert alles und es gibt auch keine Fehlermeldungen.
Also gehe ich davon aus, dass ich alles richtig programmiert habe.
Ich muss aber eine makefile machen.
Und damit habe ich ein kleines Problem.

Die makefile sieht folgendermaßen aus:

[font=Courier New]programm: main.o einausgabe.o berechnung.o
gcc -g -o programm main.o einausgabe.o berechnung.o
main.o: main.c headerdatei.h
gcc -g -o main.c
einausgabe.o: einausgabe.c headerdatei.h
gcc -g -o einausgabe.c
berechnung.o: berechnung.c headerdatei.h
gcc -g -o berechnung.c[/font]
diese habe ich mir von einem Beispielprogramm abgeguggt.
Ich habe sie als [font=Courier New]makefile.c[/font] abgespeichert.

wenn ich jetzt in der Konsole make eingebe, erhalte ich immer die Fehlermeldung

[font=Courier New]makefile.c:1: parse error before ':'
make: *** [makefile] Error 1[/font]
also liegt der Fehler schon am Anfang des Programmes.

Hab ich da irgendetwas falsch gemacht? vlt etwas vergessen?
Ist es richtig dass ich die makefile als *.c abgespeichert habe?
Was kann ich tun?
Bitte helft mir!
Wissensdurstiger ist offline   Mit Zitat antworten
Alt 25.07.2005, 16:07   #2 (permalink)
Daywalker
 
Benutzerbild von Bad Blade
 

Registriert seit: 21.05.2002
Beiträge: 5.183

Bad Blade ist ein wunderbarer AnblickBad Blade ist ein wunderbarer AnblickBad Blade ist ein wunderbarer AnblickBad Blade ist ein wunderbarer AnblickBad Blade ist ein wunderbarer AnblickBad Blade ist ein wunderbarer Anblick

Standard AW: makefile für c-programm

soweit sieht das eigendlich ganz gut aus. Wobei meine C++ Zeit ist schon etwas her. Aber die hier können dir helfen. Klick

Gruß
Alex
Dein System unter dem Avatarbild? Einfach ins Kontrollzentrum gehen->Profil bearbeiten und unter "Mein System" alles eintragen
Vegetarier essen meinem Essen das Essen weg!
Bad Blade ist offline   Mit Zitat antworten
Alt 25.07.2005, 16:45   #3 (permalink)
Die Kerrimaus
 
Benutzerbild von kerri
 

Registriert seit: 17.11.2003
Beiträge: 2.987

kerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz sein

Standard AW: makefile für c-programm

Makefiles nennt man ueblicherweise 'Makefile' (mit Grossem M und ohne .c), sie sind ja schliesslich kein C-Code (der ja ueblicherweise die Endung .c traegt.)


Zum Makefile selbst:
Die -o Optionen bei den gcc Kompilierbefehlen sind nicht so ganz richtig, -o bedeutet, er soll das [O]utputfile so nennen.

Code:
gcc -g -o main.c
kompiliert also 'gar nichts', und nennt es main.c.
Die richtige Syntax waere:
Code:
gcc -optionen -o outputname.o sourcefile.c
also in Deinem Fall:
Code:
gcc -g -o main.o main.c
jetzt wird main.c kompiliert und das kompilierte wird main.o genannt.

Das Makefile sieht dann geaendert etwa so aus:
Code:
programm: main.o einausgabe.o berechnung.o
	gcc -g -o programm main.o einausgabe.o berechnung.o

main.o: main.c headerdatei.h
	gcc -g -o main.o main.c

einausgabe.o: einausgabe.c headerdatei.h
	gcc -g -o einausgabe.o einausgabe.c

berechnung.o: berechnung.c headerdatei.h
	gcc -g -o berechnung.o berechnung.c
(Einrueckung mit TAB! nicht mit Leerzeichen)

Wenn Du noch ein Target namens clean hinzufuegst
Code:
clean: 
	rm -f programm main.o einausgabe.o berechnung.o
kannst Du mit
Code:
make clean
alle moeglichen Binaries und Object-files loeschen, und den Kompiliervorgang 'wirklich' von vorn beginnen, falls Du an einer der Sourcen was aenderst (das sollte eigenltich auch so gehen, aber ich habe schon Pferde *selbstzensiert* gesehen make clean ist auf jeden Fall recht nuetzlich )

Und zu guter letzt noch einen Link: gmake Tutorial


Viel Glueck, gruesse, kerri
kerri ist offline   Mit Zitat antworten
Alt 27.07.2005, 11:58   #4 (permalink)
Neuling
 

Registriert seit: 25.07.2005
Beiträge: 2

Wissensdurstiger befindet sich auf einem aufstrebenden Ast

Standard AW: makefile für c-programm

Danke!
Problem gelöst

hatte anstatt mit TAB die Zeilen mit Leerzeichen eingerückt
und die Datei mit *.c abzuspeichern war auch falsch

außerdem hatte ich einen kleinen Schreibfehler mit großer Wirkung drin
in den gcc-Zeilen darf nicht -o sondern -c stehen
außer in der oberen Zeile, dort war es richtig
dann braucht man auch die dateien mit *.o nicht reinschreiben
jetzt funktioniert es.
Wissensdurstiger ist offline   Mit Zitat antworten
Antwort

Stichworte
cprogramm, makefile


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
homepage programm FENDT Vario 716 TMS Windows & Programme 9 28.02.2006 22:32
partitions programm LaufNichtWeg Windows & Programme 11 15.01.2006 08:49
programm für musikbearbeitung benschzilla Audio und Video 4 20.06.2005 20:42
programm zum RAM_testen.. oma-hans Windows & Programme 3 10.06.2004 15:44
programm für oc/uc nobushde Overclocking - Übertakten 36 08.06.2004 16:43


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.






Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.
Impressum, Datenschutz Copyright © 1999-2015 TweakPC, Alle Rechte vorbehalten, all rights reserved