Makefile erstellen
-
Hallo,
ich will kleinere Projekte selbst editieren und kompilieren, ohne IDE
Mein Projekt.
Name: rk3964
Dateien: rk3964.c , t3964.c t3964.hMein Makefile
--------------------------------------------------------------
rk3964: rk3964.o t3964.o
<TAB> gcc rk3964.o t3964.o -lm -o rk3964t3964.o: t3964.c t3964.h
<TAB> gcc -c t3964.crk3964.o: rk964.c
<TAB> gcc -c rk3964.cclean: rm -f *.o
--------------------------------------------------------------Leider funktioniert das nicht. Warum auch immer
Danke
worst_case
-
"funktioniert nicht" ist keine korrekte Fehlerbeschreibung :p wmfrs
Vielleicht hilft dir ja die ultimative Makefile weiter.
-
Auf den ersten Blick würde ich sagen, die Zeile mit dem clean schaut nicht gut aus; die sollte eher so sein:
clean: rm -f *.o
Mehr Fehler ohne Fehlermeldung suchen, ist mir aber zu anstrengend.
-
Da fehlt eine 3
:p(im Ernst)
-
kingruedi schrieb:
"funktioniert nicht" ist keine korrekte Fehlerbeschreibung :p <a target='_blank'href='http://tinyurl.com/ysokg'>Wie man Fragen richtig stellt</a>
Vielleicht hilft dir ja die ultimative Makefile weiter.
In diesem ultimativen Makefile kann man folgendes besser machen:
%.dep: %.(CXX) $(CXXFLAGS) -MM $< -MT $@ -MT (EXT)=.o) -o $@
Diese Zeile sagt, dass die .dep Datei auch abhängig ist von allem von dem die .o Datei abhängt. Wenn zum Beispiel aa.c++ von aa.h++ abhängt und man fügt dann in aa.h++ ein #include "bb.h++" ein, so wird aa.c++ neu kompiliert, aber die aa.dep nicht neu erzeugt. Wird dann bb.h++ verändert, so wird aa.c++ nicht neu kompiliert, was dann ein Fehler ist.
-
Bashar schrieb:
Da fehlt eine 3
:p(im Ernst)
lol
Manchmal wirst Du mir echt unheimlich.
-
Abend,
sorry aber ich dachte ich hätte den Fehler beschrieben. (vielleicht waren die Gedanken schneller als die Tastatur und Hände)Ok, ich habe das ultimative makefile benutzt.
Hier meine Dateien im Verzeichnis: main.c t3964.c t3964.h
Targetname wäre rk3964
hier bekomme ich folgende Fehlermeldung.make
g++ -g -W -Wall -c main.c -o main.o
main.c:17:53: t3964.h: Datei oder Verzeichnis nicht gefunden
main.c:66: error: syntax error before=' token main.c: In function
int main(int, char**)':
main.c: In function `int lesen_config(block**)':dies geht dann immer so weiter. Die Datei t3964.h liegt im selben Verzeichnis und hat auch die gleichen Rechte.
Die Dateien müssen zusammenpassen da ich das Projekt auch mit Kdevelop kompilieren kann.Wer hat einen Tip.
worst_case
-
Abend,
ich habe den Fehler erkannt
in der main.c lautete es#include <t3964.h>
Ich habe hier nun den kompletten Pfad angegeben und jetzt funktioniert es.
Warum es vorher mit Kdevelop gegangen ist...keine Ahnung.gibt es hier nicht eine Möglichkeit anzugeben das der Compiler erst einmal im selben Verzeichnis nach der "#include Datei" sucht ?
Danke
worst_case
-
worst_case schrieb:
ich habe den Fehler erkannt
in der main.c lautete es#include <t3964.h>
gibt es hier nicht eine Möglichkeit anzugeben das der Compiler erst einmal im selben Verzeichnis nach der "#include Datei" sucht ?
Klar, aber <t3964.h> ist ja auch falsch, wenn Du eine Datei aus dem gleichen Verzeichnis einbinden möchtest.
Dann machst Du nämlich#include "t3964.h"
-
KDevelop hat wahrscheinlich ein "-I." oder "-I/pfad/zum/source/code" bei den CXXFLAGS hinzugefügt, die intern benutzt wurden.