Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
kdevelop - problem beim kompilieren

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Software
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
voice



Anmeldungsdatum: 15.02.2006
Beiträge: 2

BeitragVerfasst am: 15. Feb 2006 14:05   Titel: kdevelop - problem beim kompilieren

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
 
Benutzer-Profile anzeigen Private Nachricht senden

klopskuchen
prolinux-forum-admin


Anmeldungsdatum: 26.06.2004
Beiträge: 1444

BeitragVerfasst am: 15. Feb 2006 19:47   Titel:

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 .
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

voice



Anmeldungsdatum: 15.02.2006
Beiträge: 2

BeitragVerfasst am: 17. Feb 2006 10:36   Titel: versteh ich nicht ganz...

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
 
Benutzer-Profile anzeigen Private Nachricht senden

klopskuchen
prolinux-forum-admin


Anmeldungsdatum: 26.06.2004
Beiträge: 1444

BeitragVerfasst am: 17. Feb 2006 20:48   Titel:

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. Smile
hydra.o : hydra.c

MfG, Klopskuchen
_________________
When all else fails, read the instructions .
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 17. Feb 2006 21:31   Titel: Re: versteh ich nicht ganz...

voice hat folgendes geschrieben::
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
 
Benutzer-Profile anzeigen Private Nachricht senden

Alex.MH
Gast





BeitragVerfasst am: 18. Feb 2006 1:00   Titel:

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/tutorials/autoconf/toolsmanual_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
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Software Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy