photron Geschrieben June 17, 2015 at 08:01 Geschrieben June 17, 2015 at 08:01 Das ist nicht der eigentliche Fehler, denke ich. Das muss vorher in der Ausgabe noch der richtige Fehler stehen. Bzw. zeig mal was in Makefile an Zeile 428 (plus 10 Zeilen davor und danach) steht, oder häng das ganze Makefile mal an. Zitieren
FlyingDoc Geschrieben June 17, 2015 at 11:32 Autor Geschrieben June 17, 2015 at 11:32 Hier mal das Makefile.Makefile_1 Zitieren
photron Geschrieben June 17, 2015 at 11:54 Geschrieben June 17, 2015 at 11:54 Tja, sieht an sich gut aus. So wie das Makefile gebaut ist müsste es alle Befehle ausgeben bevor es sie ausführt. Zeig mal die komplette Ausgabe von make. Falls es nicht den g++ Befehl anzeigt bevor es in ausführt, dann kannst du das Makefile editierten, um an diese Information zu kommen. In Zeile 428 echo ">>> $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../bin/main.cpp <<<" zwischen diesen beiden Zeilen einfügen: ../bin/bricklet_io4.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../bin/main.cpp Achte, darauf, dass die echo Zeile auch mit einem Tab eingerückt ist wie die $(CXX) Zeile. Worauf ich hinaus will. Normalerweise solltest du von g++ selbst eine Fehlermeldung bekommen. Das scheint aber hier nicht der Fall zu sein, sondern make gibt selbst diesen komischen Fehler aus. Daher meine Vermutung, dass der g++ Befehl an sich kaputt ist. Du kannst auch mal "make -d" ausführen, damit make dir mehr Debug Informationen ausgibt. Zitieren
FlyingDoc Geschrieben June 17, 2015 at 12:01 Autor Geschrieben June 17, 2015 at 12:01 Hier mal die komplette Ausgabe. Makeausgabe.txt Zitieren
photron Geschrieben June 17, 2015 at 12:21 Geschrieben June 17, 2015 at 12:21 Schau an, lauter Compile Fehler im Zusammenhang mit OpenGL. Such mal in der Ausgabe nach "error:". Wenn ich das richtig sehe ist an allen Fehlern "../bin/glu.h" beteiligt. Hast du einen besonderen Grund warum du deinen eigenen glu.h (und wahrscheinlich auch gl.h) mitbringst? Entferne mal alle OpenGL Header die du selbst mitbringst, damit nur die aus /usr/include verwendet werden. Ich vermute, dass das Gemisch aus deinen und den System OpenGL Headern das Problem ist. Zitieren
FlyingDoc Geschrieben June 17, 2015 at 12:30 Autor Geschrieben June 17, 2015 at 12:30 Das einzigste was ich gemacht habe ist die gl Dateien ins eigentliche Programmquellcode Verzeichnis zu kopieren. Mehr nicht. Tante Edit sagt mir grad noch. Unter Windows geht es übrigends ohne Probleme! Zitieren
photron Geschrieben June 17, 2015 at 12:33 Geschrieben June 17, 2015 at 12:33 Die OpenGL Header kommen also vom RED Brick aus /usr/include? Selbst wenn dem so ist, lösch die mal aus deinem Verzeichnis. Es muss dennoch gehen. Zitieren
FlyingDoc Geschrieben June 18, 2015 at 10:59 Autor Geschrieben June 18, 2015 at 10:59 Nein. den gibt es da nicht. Ich hatte den manuell mit beim Verzeichniss hochladen mit rüber geschoben. Zitieren
photron Geschrieben June 18, 2015 at 11:38 Geschrieben June 18, 2015 at 11:38 Aus der Make Ausgabe sehe ich folgendes: - dein Programm bringt mindestens gl.h und glu.h mit - auf deinem RED Brick sind /usr/include/GL/gl.h, /usr/include/GL/glext.h, usw. vorhanden Teste bitte mal folgendes: - alle OpenGL Header (gl.h, glu.h, usw.) aus deinem Programmverzeichnis entfernen - in deinem Programm Code alle Includes für OpenGL (#include "gl.h" usw.) durch Includes dieser Form ersetzen: #include <GL/gl.h> Dadurch werden dann die OpenGL Header verwendet, die der RED Brick schon mitbringt. Denn es sieht für mich immer noch so aus als ob dein Problem ist, dass deine OpenGL Header und die vom RED Brick sich durch die Verwendung den Qt OpenGL Modules vermischen und die Fehler erzeugen. Zitieren
FlyingDoc Geschrieben June 18, 2015 at 12:39 Autor Geschrieben June 18, 2015 at 12:39 So. Ha es mal gemacht. Jetzt kommen folgende Fehler. Siehe angehangene Makeausgabe.Makeausgabe.txt Zitieren
photron Geschrieben June 18, 2015 at 13:46 Geschrieben June 18, 2015 at 13:46 Okay, jetzt können wir sicher sein, dass das Problem nicht von deinen OpenGL Headern kommt. Ich habe mit die Fehler noch mal genauer angesehen. Ich denke, dass du da zwei Probleme hast: Zum einen sind die OpenGL Header zu neu oder die Qt5 Version zu alt. Die OpenGL Header beinhalten Definitionen für OpenGL 4.3, damit scheint die Qt5 Version nicht zurecht zu kommen. Den einen Definitions-Konflikt kannst du möglicherweise lösen indem du diese Zeile #define GL_KHR_debug 1 in deinen Code einfügst, bevor zu irgendwelche anderen Header includest. Zum anderen will Qt5 auf dem RED Brick OpenGL ES 2 verwenden, du willst aber normales OpenGL verwenden. Das scheint sich auch nicht zu vertragen. Brauchst du normales OpenGL, oder könntest du auch OpenGL ES 2 verwenden? Zitieren
FlyingDoc Geschrieben June 18, 2015 at 13:59 Autor Geschrieben June 18, 2015 at 13:59 Das ist egal. Ich setze mein Programm zwecks Geschwindigkeit auf OpenGL um da der RED im "normalen" Zeichenmodus auf höchtens 2-3fps kommen. Und auch noch stark von der Auflösung abhängt. Bei OpenGL ist es ziehmlich Wurschd. Sonst dümpelt die GPU des RED doch nur rum und zeigt so ein paar Pixelchen an. Warum sollte ich sie dann nicht nutzen. Zitieren
photron Geschrieben June 18, 2015 at 14:27 Geschrieben June 18, 2015 at 14:27 Dass heißt, du brauchst für dein eigentlichen Zeichnen kein OpenGL, sondern es geht dir darum die GPU zu verwenden. Für dein eigentliches Zeichnen würde auch QPainter reichen? Hast du mal eine Kombination aus QOpenGLWidget und QPainter getestet, wie hier beschrieben: http://doc.qt.io/qt-5/qopenglwidget.html#painting-techniques Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.