PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C-Projekt in KDevelop



Bubble
07-07-2004, 23:09
Hallo,

mit IDEs wie Eclipse oder auch dem VisualStudio.NET bin ich einigermaßen vertraut, jetzt würde mich mal KDevelop interessieren.

Ich wollte mit einem ganz einfachen C-Programm beginnen. Project --> New --> Terminal --> C hat mir dann auch ein Projekt mit jeder Menge Dateien angelegt und den vier Verzeichnissen admin/, autom4te.cache/, skel/ und templates/.

Unterhalb von skel/ finde ich dann auch eine Datei, die ich für die Quelltextdatei halte. Sie heißt main.c, wurde automatisch angelegt und gibt nur den String "Hello World" aus. Das Projekt hätte ich jetzt gerne gestartet, aber irgendwie will es nicht klappen.

Configure läuft noch sauber durch, doch ein anschließendes make spuckt die Fehlermeldung aus:



Makefile.am:6: invalid unused variable name: `_SOURCES'
Makefile.am:7: invalid unused variable name: `_LDADD'
make[1]: *** [Makefile.in] Error 1
make[1]: Leaving directory `/home/daniel/c-projekt'
make: *** [all] Error 2
*** failed ***


In Makefile.am (im Hauptverzeichnis, nicht unter skel/) finden sich dann auch die beiden folgenden Zeilen:



_SOURCES =
_LDADD = skel/libskel.a


Wenn ich die auskommentiere und make erneut aufrufe, läuft es ohne Fehler durch.

Ein anschließendes EXECUTE bringt aber nicht "Hello World" auf die Konsole, sondern nur ein



bash: line 1: ./: is a directory


Da ich nicht weiß wo die kompilierte Datei main (wenn sie so heißt) liegt, vermute ich einfach mal, KDevelop macht bei EXECUTE einfach ein ./ im Hauptverzeichnis des Projekts und verursacht so den Fehler.

Wie kann ich KDevelop sagen, dass main.c die Quelltextdatei ist? Wenn ich einen Rechtsklick auf main.c mache und "Add File To Project ..." klicke, steht dahinter zwar ein "registered", aber ein erneutes configure und make bringt denselben Fehler bei EXECUTE.

Muss ich manuell in den Makefiles noch was ändern? Kann ich mir aber bei einer IDE wie KDevelop nicht wirklich vorstellen ... kann mir jemand einen Tip geben? Vielen Dank schonmal.
Bubble

undefined
08-07-2004, 09:11
Welche Distribution?
Die Fehler Meldung die du bekommst ist auch richtig weil Downspaces eigentlich zu Begin einer Varaiable nicht konform sind.
Beim erstellen deines Projektes ist dieser Fehler aufgetreten, kann sein das dein Kdevelope einen Bug beim erstellen von Projekten hat.
Ein Makefile.am sollte in etwa so aussehen.
Das Beispiel Projekt heist "hello"

bin_PROGRAMS = hello
hello_SOURCES = hello.c
# set the include path found by configure
INCLUDES= $(all_includes)
# the library search path.
hello_LDFLAGS = $(all_libraries)

Bubble
08-07-2004, 20:51
Hallo undefined,

ich benutze KDevelop 2.1.5 unter KDE 3.2.3 auf einem Debian SID mit Kernel 2.4.20.

Ich hab die Unterstriche vor den Variablennamen mal entfernt, hat aber nichts genützt.

Dann hab ich gesehen dass die Variable bin_PROGRAMS nicht gesetzt war und hab sie auf "main" gesetzt (da ja die Quellcode-Datei auch main.c heißt). Der Beginn des Makefiles ist jetzt:



####### kdevelop will overwrite this part!!! (begin)##########
bin_PROGRAMS = main

INCLUDES = $(all_includes)

SOURCES = skel/main.c
LDADD = skel/libskel.a


Wenn ich danach erneut configure und dann make aufrufe bringt make diese Fehlermeldung:



make all-am
make[1]: *** No rule to make target `main.c', needed by `main.o'. Stop.
make[1]: Entering directory `/home/daniel/c-projekt'
make[1]: Leaving directory `/home/daniel/c-projekt'
make: *** [all] Error 2
*** failed ***


Ich kenn mich ein bißchen mit Makefiles und dem Konzept aus, aber das hier übersteigt meinen Horizont und ich fürchte ich muss mich erst neu einlesen. Warum muss er main.c 'erstellen', die gibt es doch schon?!? Ich weiß noch nicht mal in welcher Datei ich anfangen muss zu suchen ...

Naja trotzdem mal danke für deine Hilfe, ein bißchen weiter bin ich ja schon, auch wenn ich nicht weiß warum ich die Makefiles in einer IDE noch von Hand editieren muss ...
Bubble

ChMaster|LFreak
08-07-2004, 21:19
währe es möglich

OBJECTS = skel/main.o

oder

OBJEXT = skel/main.o

hinzuzufügen ?

ist nur nen bsp. ich kenn mich nur wenig mit makefiles aus :)

gruß
Alexander