![]() |
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! |
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. [url="http://www.c-plusplus.de"]Klick[/url] Gruß Alex |
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[/code] kompiliert also 'gar nichts', und nennt es main.c. Die richtige Syntax waere: [code]gcc -optionen -o outputname.o sourcefile.c[/code] also in Deinem Fall: [code]gcc -g -o main.o main.c[/code] 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 [/code] (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 [/code] kannst Du mit [code] make clean [/code] 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: [url=http://www.delorie.com/gnu/docs/make/make_toc.html#SEC_Contents]gmake Tutorial[/url] Viel Glueck, gruesse, kerri |
AW: makefile für c-programm Danke! Problem gelöst :-D 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. |
| Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 Uhr. |
Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.