Einsteiger sucht Hilfe und Tutorials

Einstiegsfragen, Mathematik, Physik, künstliche Intelligenz, Engine Design
Antworten
GooTZ
Beiträge: 9
Registriert: 24.07.2012, 16:13

Einsteiger sucht Hilfe und Tutorials

Beitrag von GooTZ »

Hallo!

Ich habe schon seit lagem vor mich an die Spieleprogrammierung zu stetzen. Da ich grade eine Menge Zeit habe möchte ich mich nun daran machen. Um es vorweg zu nehemn, ich möchte keine fertige Engine verwenden einfach aus dem Grund, dass ich von null anfangen möchte um in kleinen Schritten voran zu kommen und somit das ganze System verstehen zu können.

Auserdem bin ich der Meinung das Spiele nicht nur auf Windows gehören sondern auf Linux systemen ebesno laufen sollten. Daher bin ich zu dem Schluss gelangt C++ zu verwenden in Kombination mit OpenGL. Als API hatte ich erst GLUT im Blick, ich habe allerdings vorhin erst das Thema über Yet another Dungeon Crawler gelesen. In dem Projekt kam ja GLFW zum Einsatz. Und wenn ich mir die Dokumentation dazu anschaue scheint GLFW für den anfang etwas sinnvoller zu sein als GLUT. Ist diese Entscheidung richtig oder sollte ich bei GLUT bleiben?

Warum ich euch aber um hilfe frage ist einfach die Tatsache das mir irgendiwe der Ansatz und die Mathematischen Grundkentnisse fehlen. Habt ihr da Tips, Seiten, Tutorials oder anderes für mich?

lG GooTZ
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von Artificial Mind »

Hallo GooTZ,

ich kann dir http://www.opengl-tutorial.org/ empfehlen, das ist für Einsteiger in modernes OpenGL gedacht.

GLFW ist "nur" dafür da, das 3D Fenster zu öffnen und Maus/Tastatur-Input an dich weiterzureichen.
Die eigentliche "API" für OpenGL war bei uns gl3w, aber glew tut es da auch.

Cheers
Mind
GooTZ
Beiträge: 9
Registriert: 24.07.2012, 16:13

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von GooTZ »

Hi,

danke für die schnelle Antwort.

Du meinst also ich sollte durchaus bei glut bleiben?

Danke für das Tutorial, ich werde es mal durcharbeiten.

Bei einer neuen Frage melde ich mich einfach nochmal ;)

lG
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von Artificial Mind »

Ich denke GLUT kannste zur noch später noch ohne weiteres austauschen falls es doch mal ein Problem wird.
GooTZ
Beiträge: 9
Registriert: 24.07.2012, 16:13

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von GooTZ »

Hört sich gut an :)
GooTZ
Beiträge: 9
Registriert: 24.07.2012, 16:13

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von GooTZ »

SO ich nochmal ;)

ich habe mich jetzt ausgiebig mit den tuts beschäftigt, habe im groben verstanden was wann passiert, die Feinheiten werde ich dann verstehen wenn ich selber damit arbeite. Nur dabei hapert es jetzt.

Ich arbeite mit Eclipse CDT, habe Windows 7 Home Premium 64bit, und mein Compiler (MinGW) ist der meinung das der glew header fehlerhaft wäre :shock:


Code: Alles auswählen

**** Build of configuration Debug for project Projekt 1 ****

**** Internal Builder is used for build               ****
g++ -IC:\Users\Domenik\Desktop\include\include -IC:\Users\Domenik\Desktop\include\glfw-2.7.2\include -IC:\Users\Domenik\Desktop\include\glm-0.9.1 -IC:\Users\Domenik\Desktop\include\glew-1.5.8\include -O0 -g3 -Wall -c -fmessage-length=0 -omain.o ..\main.cpp
In file included from ..\main.cpp:2:
[color=#FF0000]C:/Users/Domenik/Desktop/include/include/stdlib.h:110: warning: `__warning__' attribute directive ignored
C:/Users/Domenik/Desktop/include/include/stdlib.h:117: warning: `__warning__' attribute directive ignored[/color]
In file included from C:/Users/Domenik/Desktop/include/glm-0.9.1/GLM/./core/type_half.hpp:13,
                 from C:/Users/Domenik/Desktop/include/glm-0.9.1/GLM/./core/type.hpp:13,
                 from C:/Users/Domenik/Desktop/include/glm-0.9.1/GLM/glm.hpp:66,
                 from ..\main.cpp:6:
[color=#FF0000]C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/cstdlib:181: error: `::strtold' has not been declared
C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/cstdlib:200: error: `__gnu_cxx::strtold' has not been declared[/color]
Build error occurred, build is stopped
Time consumed: 337  ms.  
Hier einfach mal die Errormeldung der Konsole


Was mich an der Sache nur irritiert ist, dass In den Beispielprogrammen aus den Tutorials es ja anscheinend Funktioniert.


Hat da wer ne Idee wo das Problem liegt?


lG GooTZ

PS: Ich hoffe das ich mit so einem Hilfeschrei im richtigen Forum bin.
Youka
Beiträge: 28
Registriert: 20.04.2011, 18:24
Wohnort: Darmstadt

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von Youka »

In file included from ..\main.cpp:2:
C:/Users/Domenik/Desktop/include/include/stdlib.h:110: warning: `__warning__' attribute directive ignored
C:/Users/Domenik/Desktop/include/include/stdlib.h:117: warning: `__warning__' attribute directive ignored

In file included from C:/Users/Domenik/Desktop/include/glm-0.9.1/GLM/./core/type_half.hpp:13,
from C:/Users/Domenik/Desktop/include/glm-0.9.1/GLM/./core/type.hpp:13,
from C:/Users/Domenik/Desktop/include/glm-0.9.1/GLM/glm.hpp:66,
from ..\main.cpp:6:
C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/cstdlib:181: error: `::strtold' has not been declared
C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/cstdlib:200: error: `__gnu_cxx::strtold' has not been declared
Nicht glew scheint fehlerhaft zu sein, sondern der Compiler zu und die Präprozessor Direktiven vor der Einbindung von stdlib.h in GLM.
Schau mal über dein Projekt in stdlib.h rein, ob die Funktion strtold überhaupt definiert wird (also nicht ausgegraut ist wegen nicht zutreffendem #ifdef). Ich nehme an, es liegt daran, dass du eine stdlib.h verwendest, die nicht zum Compiler gehört.
GooTZ
Beiträge: 9
Registriert: 24.07.2012, 16:13

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von GooTZ »

Hi,

ja ich weis, das dass was ich gepostet hatte nichts mit glew zu tun hatte. Das Problem was ich nur ursprünglich posten wollte hatte damit zu tun, das konnte ich aber selber fixen.

Mir ist der Fehler im post allerdings nicht aufgefallen ;)


SO aber zu dem was du meintest:

iin meinem stdlib.h habe ich folgende Zeile
extern long double strtold (const char *, char **);
strtold ist allerdings in der normalen grauen/schwarzen schrift. Also so als würde die Syntaxerkennung von eclipse dort nichts erkennt.


Zu dem Thema das der header zu einem anderen compiler gehören kann. Ich habe jetzt mehrere compiler versucht da es bisher mit keinem einzigen Compilerinerhalb von Eclipse funktioniert hat, habe ich die Compiler einfach mal so auf meiner Platte dümpeln lassen... Sollte sowas lieber vermieden werden, um eventuell solche errors zu vermeiden?

lG GooTZ



//Edit//

So ich habe das mal überprüft. Du hattest recht, das der header zu einem anderen Compiler gehört, ich habe die ganzen includes die dazugehören ausgetauscht.

Aber wie nicht anders zu erwarten gibts danach den nächsten Error :D
20:25:30 **** Incremental Build of configuration Debug for project Projekt 1 ****
Info: Internal Builder is used for build
g++ "-LC:\\MinGW\\include" "-LC:\\Users\\Domenik\\Desktop\\include\\glfw-2.7.2\\include" "-LC:\\Users\\Domenik\\Desktop\\include\\glm-0.9.1" "-LC:\\Users\\Domenik\\Desktop\\include\\glew-1.5.8\\include" -o "Projekt 1.exe" main.o -l
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -l-lstdc++
collect2: ld returned 1 exit status

20:25:30 Build Finished (took 178ms)
Youka
Beiträge: 28
Registriert: 20.04.2011, 18:24
Wohnort: Darmstadt

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von Youka »

g++ "-LC:\\MinGW\\include" "-LC:\\Users\\Domenik\\Desktop\\include\\glfw-2.7.2\\include" "-LC:\\Users\\Domenik\\Desktop\\include\\glm-0.9.1" "-LC:\\Users\\Domenik\\Desktop\\include\\glew-1.5.8\\include" -o "Projekt 1.exe" main.o -l
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -l-lstdc++
  • Warum steht -l allein am Ende der Compiler Parameter?
  • Was sagt die Fehlermeldung: der Compiler will standardmäßig libstdc++.a linken (mit dem Linker ld.exe), also die C++ Standardausrüstung - und findet die Bibliothek nicht.
    Könnte auch mit deinem Compiler-Includes-Libs Herumgemische zu haben.
GooTZ
Beiträge: 9
Registriert: 24.07.2012, 16:13

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von GooTZ »

Bezüglich des einzelnen -l : keine Ahnung warum das einzeln da steht, daran habe ich bisher nichts verändert, weil ich nicht weis wo man die Einstellt. Wobei ich davon warscheinlich lieber die Finger von lassen sollte

Bezüglich der ld.exe : Müsste man das eigentlich nicht innerhalb von eclipse einstellen können welche file er nutzen soll um den build zu erstellen? weil eigentlich sollte das ja eine make.exe sein, wobei die bei dem compiler mingw32-make heist.

Zu deiner Aussage mit dem gemische: Inzwischen ist eigentlich gar nichts mehr gemischt. Alle inludes in den build Optionen von eclipse sind auf den richtigen compiler eingestellt. Das einzige ist halt das auf meinem rechner mehrere Compiler für C++ vorhanden sind. Kann ich eigentlich unbenutzte einfach so löschen oder müssen die auf einem bestimmten weg deinstalliert werden?
Youka
Beiträge: 28
Registriert: 20.04.2011, 18:24
Wohnort: Darmstadt

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von Youka »

GooTZ hat geschrieben:Bezüglich des einzelnen -l : keine Ahnung warum das einzeln da steht, daran habe ich bisher nichts verändert, weil ich nicht weis wo man die Einstellt. Wobei ich davon warscheinlich lieber die Finger von lassen sollte
Schau mal hier, speziell Link Options und Directory Options. Es macht schon Sinn, die Compiler-Parameter zu kennen, zumindest die nötigsten.
GooTZ hat geschrieben:Bezüglich der ld.exe : Müsste man das eigentlich nicht innerhalb von eclipse einstellen können welche file er nutzen soll um den build zu erstellen?
Ich denke mal, das Linken zu dem C++ Standard ist Zwang, daher sollte libstdc++ in den Standard-Bibliotheksverzeichnissen des Compilers schon auftauchen. Streite dich nicht mit dem Compiler, du wirst nicht gewinnen :roll:
GooTZ hat geschrieben:Das einzige ist halt das auf meinem rechner mehrere Compiler für C++ vorhanden sind. Kann ich eigentlich unbenutzte einfach so löschen oder müssen die auf einem bestimmten weg deinstalliert werden?
Deinstallieren ist immer sicherer, wenn es geht. Du weißt ja nicht, was dir bei der Installation alles für Zwischenverzeichnisse angelegt oder in die Registry geschrieben wurde. Ausserdem solltest du ohnehin nicht zu viele Compiler benötigen. Den Microsoft Compiler und GCC reicht in fast allen Fällen aus.
GooTZ
Beiträge: 9
Registriert: 24.07.2012, 16:13

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von GooTZ »

Bezüglich des einzelnen -l : keine Ahnung warum das einzeln da steht, daran habe ich bisher nichts verändert, weil ich nicht weis wo man die Einstellt. Wobei ich davon warscheinlich lieber die Finger von lassen sollte
Schau mal hier, speziell Link Options und Directory Options. Es macht schon Sinn, die Compiler-Parameter zu kennen, zumindest die nötigsten.
jetzt verstehe ich auch warum du dich wunderst das -l alleine steht, ist etwas überflüssig so.

außerdem ist mir folgendes aufgefallen:
-I-
This option has been deprecated. Please use -iquote instead for -I directories before the -I- and remove the -I-. Any directories you specify with -I options before the -I- option are searched only for the case of `#include "file"'; they are not searched for `#include <file>'.
If additional directories are specified with -I options after the -I-, these directories are searched for all `#include' directives. (Ordinarily all -I directories are used this way.)

In addition, the -I- option inhibits the use of the current directory (where the current input file came from) as the first search directory for `#include "file"'. There is no way to override this effect of -I-. With -I. you can specify searching the directory that is current when the compiler is invoked. That is not exactly the same as what the preprocessor does by default, but it is often satisfactory.

-I- does not inhibit the use of the standard system directories for header files. Thus, -I- and -nostdinc are independent.
was mir bei der sache nur ins auge sticht ist die tatsache das in meiner fehlermeldung ja folgendes steht:

cannot find -l-lstdc++

wo ja auch -l- vorkommt. sollte es daher nicht eigentlich so sein: -l stdc++ ?

Oder sehe/verstehe ich da grade was falsch?




//nächtliches Edit//

beim googlen bin ich auf das und auf das gestoßen. Kann mir davon was weiterhelfen?
Youka
Beiträge: 28
Registriert: 20.04.2011, 18:24
Wohnort: Darmstadt

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von Youka »

Ich denke, du solltest erstmal ein paar Tutorials über deinen Compiler lesen, ansonsten artet es hier noch in eines aus, was ich nicht verfassen möchte.
Schaue hier.
GooTZ
Beiträge: 9
Registriert: 24.07.2012, 16:13

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von GooTZ »

:lol: jo mach ich. Danke für deine Hilfe.
GooTZ
Beiträge: 9
Registriert: 24.07.2012, 16:13

Re: Einsteiger sucht Hilfe und Tutorials

Beitrag von GooTZ »

so nachdem ich mich mal mit den tut´s beschäftigt habe, es mir nicht weitergeholfen hat, habe ich mal MinGW deinstalliert und mit der msys komponente neu installiert. Das ganze funktioniert jetzt soweit, das ich nur noch ein einziges problem habe: die flags des compilers.

Denn jetzt mach das einzelne -l probleme. ich würde das einfach mal aus dem command nehem, ich habe nur kein plan wo ich das in eclipse einstelle. Google hilft mir natürlich auch net weiter -.-



//edit//

so das ganze hat sich jetzt erledigt, ich abreite jetzt mit microsoft visual c++ '12 express, da funzt alles. Auch wenn mir das so nicht gefällt, besondere die Syntaxhervorhebung aber naja hauptsache es läuft :D
Antworten