Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit KDevelop
Hallo!
Bin in Linux ziemlich neu...vielleicht liegts bei manchen fehlern auch daran :)
kleine frage:
darf man die sdl in seine engine einbinden und damit komerzielle programme machen?
hauptproblem:
Ich schaff es einfach nicht, in kdevelop alles zum laufen zu kriegen...
wenn ich erstellen->configure mache, kommt ne fehlermeldung und erstellen geht auch nicht. und unter projekte->optionen kann ich die linker und make options nicht ändern (alles grau)...aber das brauch ich ja eigentlich, um libs einzubinden (oder?)
anda_skoa
02-10-2002, 16:01
Original geschrieben von Camel69
kleine frage:
darf man die sdl in seine engine einbinden und damit komerzielle programme machen?
Ja, die SDL steht unter LGPL.
Nur Änderungen an der Lib selbst müssen wieder LGPL sein.
Außerdem meinst du nicht kommerziell, sondern proprietär.
Kommerziell ist, wenn es um Geld geht, proprietär, wenn es um das unetr Verschluß halten von internen Details geht.
hauptproblem:
Ich schaff es einfach nicht, in kdevelop alles zum laufen zu kriegen...
wenn ich erstellen->configure mache, kommt ne fehlermeldung und erstellen geht auch nicht. und unter projekte->optionen kann ich die linker und make options nicht ändern (alles grau)...aber das brauch ich ja eigentlich, um libs einzubinden (oder?)
Ah, deja vu :)
(darauf hab ich glaub ich auf linuxforen.de geantwortet)
Wenn du ein neues Projekt erzeugst, wie weit kommt er da?
Ciao,
_
hehe, werd gleich mal schauen :)
da hatte halt bisher noch keiner geschrieben, da dachte ich, hier wäre es besser aufgehoben
ich meine komerziell!!! ;)
anda_skoa
02-10-2002, 17:20
Original geschrieben von Camel69
hehe, werd gleich mal schauen :)
da hatte halt bisher noch keiner geschrieben, da dachte ich, hier wäre es besser aufgehoben
Ist es ansich eh :)
ich meine komerziell!!! ;)
Ah, ok.
Sehr oft gibt es da Missverständnisse, vorallem bei GPL.
Die einzige Lib, die kommerzielle Nutzung verbietet (und mir gerade einfällt) ist die Qt/Windows mit non-commercial license.
Ich kenn sonst eigentlich keine Lizenz, die kommerzielle Nutzung verbietet.
Ciao,
_
also kann ich die sdl in meine engine einbetten und das ganze auch ruhig für komerzielle programme verwenden..gut
zu kdevelop: jepp, hab ein projekt offen
kann auch auf erstellen und sowas klicken, nur funzt das eben nicht...
anda_skoa
02-10-2002, 18:36
Hmm, beim Erzeugen des Projekts gibt es also keine Probleme?
Geh mal ins Verzeichnis des Projekts und versuche
#> make -f Makefile.dist
also kann ich die sdl in meine engine einbetten und das ganze auch ruhig für komerzielle programme verwenden
Ja, sogar in proprietärer Software, das LGPL.
Ciao,
_
Makefile nicht vorhanden
die Meldung hatte ich glaube ich auch in kdevelop schonmal
wenn ich erstellen -> datei compilieren mache:
make: *** Keine Regel, um »test.o« zu erstellen. Schluss.
*** fehlgeschlagen ***
wenn ich erstellen mache, kommt, dass ich erstellen -> configure aufrufen soll
wenn ich erstellen configure so ausführe
--build=i386-linux --host=i386-linux --target=i386-linux
kommt:
/bin/sh: ./configure: Datei oder Verzeichnis nicht gefunden
*** fehlgeschlagen ***
.......??? :confused:
anda_skoa
03-10-2002, 10:02
Es gibt kein Makefile.dist?
Das erzeugt nämlich das configure.
Keine Ahnung wie du ein KDevelop Projekt generieren konntest, ohne dass es eine Makefile.dist gibt.
Das Buildsystem funktioniert so
zuerst erzeugt das Makefile.dist auf dem configure.in.in das configure und noch ein paar andere Scahen.
Dann das configure ein paar Sachen und erst dann gibt es die Makefiles.
Bevor du also kein configure hast, brauchst du spätere Schritte nicht zu versuchen.
Wie schon gesagt, ich hatt bisher immer ein Makefile.dist
Mich wundert, dass du bei einem neuen Projekt auch keins bekommst.
Du hast du wie vorgeschlagen mal ein neues Projekt erstellt, oder?
Kamen da wirklich keine Fehlermeldungen?
Ciao,
_
mein fehler lag daran, dass ich immer eigenes projekt gewählt habe
hab jetzt mal c++-prjekt genommen und jetzt gehts
allerdings gibts schon ein neues problem: hab unter projectoptions -> compileroptions -> configure bei --x-includes mal mein SDL/include verzeichnis eingetragen, wo auch die SDL.h drin ist
aber wenn ich in meinem quellcode nun #include <SDL.h> schreibe, findet er sie nicht
dann hab ich sie mal zum projekt hinzugefügt, macht aber wenig sinn, da er dann nach und nach 20 ode rmehr dateien braucht...d.h. man kann den halben abend lang dateien includen und hat dannach sauviele in seinem projekt dirn... :confused:
anda_skoa
03-10-2002, 20:44
--x-includes ist für die X header
SDL gehört in die Zeile Additonal Options
-I/pfad/zu/sdl
Am besten einfach den output von
#> sdl-config --cflags
reinkopieren
und bei den linker options
#> sdl-config --libs
Zu SDL und KDevelop gibt es hier im Forum auch ein paar andere Threads, wenn ich mich recht erinnere.
(Außerdem ist das glaub ich sogar ein FAQ auf www.libsdl.org)
Ciao,
_
hab jetzt mal laut deiner anleitung und einigen faq's folgendes unter compiler-options -> configure unter weitere optionen eingetragen:
`sdl-config --cflags`
allerdings kommt bei einem ok dann folgendes:
Ausführen von configure im Build-Verzeichnis.
configure: error: unrecognized option: -I/usr/include/SDL
Try `./configure --help' for more information.
*** fehlgeschlagen ***
:(
anda_skoa
03-10-2002, 23:02
Ja, das -I gehört bei den CFLAGS, nicht bei configure
Ciao,
_
also hab unter compileroptions -> Schalter und Warnungen unter CFLAGS `sdl-config --cflags` eingetragen - funzt auch wunderbar, er findet die SDL.h jetzt
AAABER: es fehlen ja noch die libs
also trag ich unter compileroptions -> Linker-Schalter unter Weitere Optionen `sdl-config --libs` ein
das komische an dieser eingabezeile ist, dass kdevelop irgendwie immer ein oder 2 leerzeichen davor setzt....und manchmal lässt sich der code compilieren und manchmal kommt folgende fehlermeldung (die wieder verschwindet, wenn ich die sdl-config --libs zeile wieder lösche):
/usr/i486-suse-linux/bin/ld: cannot find -laa
collect2: ld returned 1 exit status
anda_skoa
04-10-2002, 15:28
Hmm.
bei mir ist sdl-config --libs nur
-L/usr/lib -lSDL -lpthread
Vielleicht ist dein SDL gegen libaa gelinkt.
Vielleicht trägst du besser den Output direkt ein, anstatt des Aufrufs.
Wahrscheinlich reicht die -L Direktive und -lSD, bzw. wenn SDL wie bei mir in /usr/lib ist, sollte auch -lSDL reichen.
Ciao,
_
wenn ich
-L/usr/lib -lSDL -lpthread
eintrage, kommt wieder die gleiche fehlermeldung
wenn ich nur -L/usr/lib eintrage, findet er eben den code für SDL_Init() nicht...
das komische ist ja, dass es manchmal ging, und dann wieder nicht...(bei ner leeren main())
wenn ich jetzt was mit sdl programmieren will, gehts nicht....
anda_skoa
04-10-2002, 17:44
Original geschrieben von Camel69
wenn ich
-L/usr/lib -lSDL -lpthread
eintrage, kommt wieder die gleiche fehlermeldung
wenn ich nur -L/usr/lib eintrage, findet er eben den code für SDL_Init() nicht...
Du sollst ja auch das -L weglassen nicht das -lSDL :)
Das erste gibt ja nur einen Pfad an, der im Falle von /usr/lib nicht nötig ist.
Das zweite gibt an, mit welcher Lib gelinkt werden soll.
das komische ist ja, dass es manchmal ging, und dann wieder nicht...(bei ner leeren main())
wenn ich jetzt was mit sdl programmieren will, gehts nicht....
Ja, das ist klar.
Wenn du keine Sachen aus libSDL verwendest, muß sie der Linker auch nicht linken.
Ciao,
_
vielleicht hab ich's immer noch nicht kapiert :rolleyes:
aber wenn ich jetzt bei den linkeroptions -lSDL (kleines L ist das, oder?) oder -lSDL -lpthread eintrage, kommt wieder die alte fehlermeldung...
anda_skoa
04-10-2002, 18:41
Hmm, ja kleines L
Versuch mal , auf der Konsole zu kompilieren.
eine main.c schreiben, die einen mind. SDL Befehl enthält
dann
#> gcc -o sdltest main.c $(sdl-config --cflags --libs)
Und den Output posten, falls es nicht geht.
Ciao,
_
also, output kommt keiner, d.h. wohl, es ist alles ok
wenn ich eingebe: if(SDL_Init(SDL_INIT_VIDEO) == 0) printf("irgendwas");
dann gibt er das auch aus...heißt das. die funktion schlägt fehl? oder ist das erst, wenn < 0?
anda_skoa
04-10-2002, 19:37
Original geschrieben von Camel69
also, output kommt keiner, d.h. wohl, es ist alles ok
Hmm, dann sollte es auch in KDevelop gehen. :(
wenn ich eingebe: if(SDL_Init(SDL_INIT_VIDEO) == 0) printf("irgendwas");
dann gibt er das auch aus...heißt das. die funktion schlägt fehl? oder ist das erst, wenn < 0?
aus
#> man SDL_Init
RETURN VALUE
Returns -1 on an error or 0 on success.
Ciao,
_
zumindest kann ich ja dann so meine sachen kompilieren...wäre in kdevelop natürlich praktischer, wegen den fehlermeldungen (syntaxerrors z.b.), aber immerhin....
anda_skoa
04-10-2002, 20:50
Original geschrieben von Camel69
also hab unter compileroptions -> Schalter und Warnungen unter CFLAGS `sdl-config --cflags` eingetragen - funzt auch wunderbar, er findet die SDL.h jetzt
AAABER: es fehlen ja noch die libs
also trag ich unter compileroptions -> Linker-Schalter unter Weitere Optionen `sdl-config --libs` ein
Probier die Libs mal bei Linker Optionen
(eines unter Compiler Options)
Ciao,
_
bringt auch nix, es kommt immer noch "cannot find -laa" hier mal die ganze meldung, vielleicht kann jemand damit was anfangen....:
cd . \
&& CONFIG_FILES= CONFIG_HEADERS=config.h \
/bin/sh ./config.status
config.status: creating config.h
config.status: config.h is unchanged
gmake all-recursive
gmake[1]: Wechsel in das Verzeichnis Verzeichnis »/home/camel69/codeeye/projects/sdl_test1«
cd . && \
/bin/sh /home/camel69/codeeye/projects/sdl_test1/admin/missing --run automake --foreign ./Makefile
cd . && perl admin/am_edit Makefile.in
cd . && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=Makefile /bin/sh ./config.status
fast creating Makefile
gmake[1]: Verlassen des Verzeichnisses Verzeichnis »/home/camel69/codeeye/projects/sdl_test1«
gmake[1]: Wechsel in das Verzeichnis Verzeichnis »/home/camel69/codeeye/projects/sdl_test1«
Making all in sdl_test1
gmake[2]: Wechsel in das Verzeichnis Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1«
cd .. && \
/bin/sh /home/camel69/codeeye/projects/sdl_test1/admin/missing --run automake --gnu sdl_test1/Makefile
cd .. && perl admin/am_edit sdl_test1/Makefile.in
cd .. && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=sdl_test1/Makefile /bin/sh ./config.status
fast creating sdl_test1/Makefile
gmake[2]: Verlassen des Verzeichnisses Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1«
gmake[2]: Wechsel in das Verzeichnis Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1«
Making all in docs
gmake[3]: Wechsel in das Verzeichnis Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1/docs«
cd ../.. && \
/bin/sh /home/camel69/codeeye/projects/sdl_test1/admin/missing --run automake --gnu sdl_test1/docs/Makefile
cd ../.. && perl admin/am_edit sdl_test1/docs/Makefile.in
cd ../.. && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=sdl_test1/docs/Makefile /bin/sh ./config.status
fast creating sdl_test1/docs/Makefile
gmake[3]: Verlassen des Verzeichnisses Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1/docs«
gmake[3]: Wechsel in das Verzeichnis Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1/docs«
Making all in en
gmake[4]: Wechsel in das Verzeichnis Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1/docs/en«
cd ../../.. && \
/bin/sh /home/camel69/codeeye/projects/sdl_test1/admin/missing --run automake --gnu sdl_test1/docs/en/Makefile
cd ../../.. && perl admin/am_edit sdl_test1/docs/en/Makefile.in
cd ../../.. && \
CONFIG_HEADERS= CONFIG_LINKS= \
CONFIG_FILES=sdl_test1/docs/en/Makefile /bin/sh ./config.status
fast creating sdl_test1/docs/en/Makefile
gmake[4]: Verlassen des Verzeichnisses Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1/docs/en«
gmake[4]: Wechsel in das Verzeichnis Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1/docs/en«
gmake[4]: Für das Target »all« gibt es nichts zu tun.
gmake[4]: Verlassen des Verzeichnisses Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1/docs/en«
gmake[4]: Wechsel in das Verzeichnis Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1/docs«
gmake[4]: Für das Target »all-am« gibt es nichts zu tun.
gmake[4]: Verlassen des Verzeichnisses Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1/docs«
gmake[3]: Verlassen des Verzeichnisses Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1/docs«
gmake[3]: Wechsel in das Verzeichnis Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1«
/bin/sh ../libtool --mode=link --tag=CXX g++ -O2 -O0 -g3 -Wall -I/usr/include/SDL -D_REENTRANT -fno-exceptions -fno-check-new -o sdl_test1 main.o -lSDL -lpthread
mkdir .libs
g++ -O2 -O0 -g3 -Wall -I/usr/include/SDL -D_REENTRANT -fno-exceptions -fno-check-new -o sdl_test1 main.o /usr/lib/libSDL.so /usr/lib/libasound.so -L/opt/kde3/lib -lartsc -L/usr/lib /usr/lib/libesd.so /usr/lib/libaudiofile.so -lm -L/usr/X11R6/lib -lX11 -lXext -lXxf86vm -lXxf86dga -lXv -lXinerama -laa -ldl -lpthread
gmake[3]: Verlassen des Verzeichnisses Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1«
gmake[2]: Verlassen des Verzeichnisses Verzeichnis »/home/camel69/codeeye/projects/sdl_test1/sdl_test1«
gmake[1]: Verlassen des Verzeichnisses Verzeichnis »/home/camel69/codeeye/projects/sdl_test1«
/usr/i486-suse-linux/bin/ld: cannot find -laa
collect2: ld returned 1 exit status
gmake[3]: *** [sdl_test1] Fehler 1
gmake[2]: *** [all-recursive] Fehler 1
gmake[1]: *** [all-recursive] Fehler 1
gmake: *** [all] Fehler 2
*** fehlgeschlagen ***
es ist schon ok, dass ich `sdl-config --cflags` bei CPPFLAGS, CFLAGS und CXXFLAGS eintrage, oder? er findet die header sonst nicht alle - und es ist ja auch ein c++-projekt
anda_skoa
05-10-2002, 22:49
Original geschrieben von Camel69
bringt auch nix, es kommt immer noch "cannot find -laa" hier mal die ganze meldung, vielleicht kann jemand damit was anfangen....:
Dann würde ich vorschlagen, du nimmst das -laa raus :)
es ist schon ok, dass ich `sdl-config --cflags` bei CPPFLAGS, CFLAGS und CXXFLAGS eintrage, oder? er findet die header sonst nicht alle - und es ist ja auch ein c++-projekt
Hmm, CXXFLAGS oder CFLAGS sollte reichen.
Die CPRFLAGS sind für den Präprozessor, sollten hier also nicht nötig sein.
Ciao,
_
hmm, hab ich irgendwie ne total veratzte version von kdevelop 2.1???
die präprozäserflags heißen bei mir in den options CPPFLAGS :confused:
hmm, muss da mal ganz dumm fragen: wo mach ich das -laa weg? :) bei ner zeile, wo ich meineweiteren optionen immer eintrage steht nix...
anda_skoa
06-10-2002, 12:41
Original geschrieben von Camel69
hmm, hab ich irgendwie ne total veratzte version von kdevelop 2.1???
die präprozäserflags heißen bei mir in den options CPPFLAGS :confused:
Sorry, mein Fehler. Die Präprozessor Flgs heißen CPPFLAGS.
hmm, muss da mal ganz dumm fragen: wo mach ich das -laa weg? :) bei ner zeile, wo ich meineweiteren optionen immer eintrage steht nix...
Ich hatte den Eindruck, dass das -laa Teil der Ausgabe von sdl-config --libs ist.
Wüßte sonst nicht, woher das kommt.
Was hast du für einen Projekttyp?
Terminal/C++ oder "Eigenes Projekt"
Ciao,
_
terminal/c++
mit dem eigenen projekt hatte ich ja das problem, dass ich ganz ganz am anfang dieses thread mal beschrieben hatte, dass es sich eben nicht kompilieren/erstellen lies
anda_skoa
06-10-2002, 14:28
Ahja, stimmt.
Werd mal ein solches projekt generiren.
Kannst du trotzdem den Output von sdl-config --libs posten?
Ciao,
_
-L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread
z.zt. arbeite im zum kompilieren mit g++, da funzt wenigstens :)
allerdings steig ich da noch nicht so voll bei den ganzen parametern durch...
ich will sdl und ogl sachen benutzen und 2 cpp dateien kompilieren
was ist daran falsch:
g++ -o sdltest main.cpp myogl.cpp `sdl-config --cflags --libs` -I/usr/include/GL
?
anda_skoa
07-10-2002, 11:14
Da fehlt auf jeden Fall noch die Angabe der GL Bibliothek, also -lGL
Wenn du nur wenige Sourcefiles hast, kannst du dir ein Makefile auch selber erstellen.
Dann kannst du auch "Eigenes Projekt" in KDevelop benutzen.
Warum bei dem C++ Projekt libaa gelinkt wird, bzw es versucht wird, versteh ich nicht.
Wenn ich eines erzeuge, dann kommt -laa nicht vor.
Ciao,
_
heißt das, -laa ist ne lib, die er zu linken versucht, aber nicht findet?
kann man die dann nicht irgendwo rauslöschen - aus dem makefile vielleicht - ka ;)
anda_skoa
07-10-2002, 18:28
Ja, wenn was mit -l (kleines L) anfängt, ist es immer eine Linkerdirektive, die besagt, dass die Library mit dem Name
libXXX gelinkt werden soll.
In dem Fall libaa.
Du kannst in den Makefile.am Dateien nachsehen, ob das w da -laa vorkommt.
Das Problem ist, das KDevelop diese Dateien generiert.
Bei der nächsten Änderung steht es also wieder drinnen.
Ciao,
_
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.