Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 14. Nov 2018 7:28

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: kdevelop - problem beim kompilieren
BeitragVerfasst: 15. Feb 2006 14:05 
Offline

Registriert: 15. Feb 2006 12:24
Beiträge: 2
hi leute...

bin gerade dabei eine sehr alte eigen-software unserer firma mit kdevelop wieder ins leben zurückzuholen. die software dient zur berechnung hydraulischer modelle und soll in zukunft basierend auf der alten grundlage weiterentwickelt werden... jetzt habe ich aber ein problem... beim kompilieren der einzelnen files bekomme ich keine fehlermeldung... versuche ich das ganze paket zu erstellen meldet mir kdevelop folgendes...


cd '/home/pokg/prog_c++/hydra/debug' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k -j1 -n
if test ! -f config.h; then rm -f stamp-h1; gmake stamp-h1; else :; fi
gmake all-recursive
set fnord $MAKEFLAGS; amf=$2; dot_seen=no; target=`echo all-recursive | sed s/-recursive//`; list='src'; for subdir in $list; do echo "Making $target in $subdir"; if test "$subdir" = "."; then dot_seen=yes; local_target="$target-am"; else local_target="$target"; fi; (cd $subdir && gmake $local_target) || case "$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; done; if test "$dot_seen" = "no"; then gmake "$target-am" || exit 1; fi; test -z "$fail"
Making all in src
gmake[2]: *** Keine Regel vorhanden, um das Target »hydra.c«,
benötigt von »hydra.o«, zu erstellen.
gmake[1]: *** [all-recursive] Fehler 1
if test ! -f config.h; then rm -f stamp-h1; gmake stamp-h1; else :; fi
gmake: *** [all] Fehler 2
*** Beendet mit Status: 2 ***

... kann mir vielleicht jemand helfen dieses problem zu lösen!

danke
alex


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15. Feb 2006 19:47 
Offline
prolinux-forum-admin

Registriert: 26. Jun 2004 21:18
Beiträge: 1444
Zitat:
gmake[2]: *** Keine Regel vorhanden, um das Target »hydra.c«,
benötigt von »hydra.o«, zu erstellen.
Eine dependency line eines Makefiles hat auszusehen:
target: object1 object2 ... object_n

Nach obiger Meldung sind Ziel und Abhängigkeit in betreffender Zeile vertauscht und make versucht aus einer Binärdatei (hydra.o) eine Sourcedatei (hydra.c) zu erstellen, was nicht klappt selbst wenn die betreffende Kommandoangabe richtig ist.

MfG, Klopskuchen

_________________
When all else fails, read the instructions .


Nach oben
   
 Betreff des Beitrags: versteh ich nicht ganz...
BeitragVerfasst: 17. Feb 2006 10:36 
Offline

Registriert: 15. Feb 2006 12:24
Beiträge: 2
hi,

tut mir leid, ich verstehe nicht ganz was du meinst... kenne mich mit "makefiles" nicht wirklich aus... deshalb verwende ich für meine programme immer eine entwicklungsumgebung die mir diese arbeit abnimmt...

vielleicht kannst du mir etwas mehr detailierte tipps geben...

danke!!!!

alex


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 17. Feb 2006 20:48 
Offline
prolinux-forum-admin

Registriert: 26. Jun 2004 21:18
Beiträge: 1444
Sinn und Zweck von "make" ist es, bei Änderung an wenigen Dateien größerer Projekte, nicht alles neu kompilieren und linken zu müssen. Das "Makefile" enthält eine Beschreibung nach syntaktischen Regeln über die Abhängigkeiten aller Dateien, vom Source über Header bis zu Obkjektdateien.
Eine dieser syntaktischen Regeln ist die der "Abhängigkeitsbeschreibung" (dependency line). Um "make" mitzuteilen welche Dateien benötigt werden um eine bestimmte Binärdatei zu erstellen, muß die Abhängigkeitsbeschreibung in folgender Form im Makefile vorliegen:
Zieldatei : "hier eine Liste der benötigten Dateien zur Erstellung der Zieldatei, getrennt durch jeweils ein Leerzeichen"

Beispiel:
Endprodukt sollen sein zwei auszuführende Dateien, eine davon soll heißen "execute_logger". Diese ausführbare Datei wird erstellt aus main.c, logging.c, project_generic.h, zusätzlich wird mylog.o hinzugelinkt. Im Makefile sollte also stehen:
execute_logger : main.c logging.c project_generic.h mylog.o

In der von dir geposteten Fehlermeldung bezeichnet "make" die Datei hydra.c als Ziel und hydra.o als Abhängigkeit. Demzufolge steht im Makefile eine Zeile:
hydra.c : hydra.o
und "make" versucht nun aus der *.o eine *.c zu erstellen, was logischerweise nicht geht. Wahrscheinlicher wäre es eine Objektdatei als Kompilat einer Quellcodedatei zu erhalten. :)
hydra.o : hydra.c

MfG, Klopskuchen

_________________
When all else fails, read the instructions .


Nach oben
   
 Betreff des Beitrags: Re: versteh ich nicht ganz...
BeitragVerfasst: 17. Feb 2006 21:31 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
Zitat:
hi,
tut mir leid, ich verstehe nicht ganz was du meinst... kenne mich mit "makefiles" nicht wirklich aus... deshalb verwende ich für meine programme immer eine entwicklungsumgebung die mir diese arbeit abnimmt...
Ein bisschen sollte man sich mit der Syntax von Makefiles schon auskennen, wenn man in C programmiert. Wenn man ein, zwei kleine Makefiles selbst gemacht hat, hat man den Dreh raus und muss nicht aus *diesem* Grund ein Trumm wie kdevelop benutzen. Zumal das auch bloß Makefiles erzeugt, aber ziemlich unübersichtliche - wenn dann was schief geht steht man hilflos da!

$ info make
oder Konqueror: ##make

und einfach mal ein wenig rumspielen.

Janka


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18. Feb 2006 1:00 
Hi,

die Makefiles von kdevelop sehen so grausam aus, weil automake verwendet wird. Du solltest daher die Makefiles nicht direkt editieren, da sie sonst beim naechsten configure wieder ueberschrieben werden.

Am besten du liest dir mal den Abschnitt "Using Automake" von diesem Tutorial durch: http://www.amath.washington.edu/~lf/tut ... l_toc.html

Falls du nur ein kleines Projekt hast, welches nicht gegen externe Libraries gelinkt werden muss, ist es meist besser selbst ein kleines Makefile zu schreiben. Eine Anleitung dafuer findest du ebenfalls im obigen Tutorial.

Gruss,
Alex


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de