Jump to content

RED C++ QT


Recommended Posts

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.

Link zu diesem Kommentar
Share on other sites

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.

Link zu diesem Kommentar
Share on other sites

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.

Link zu diesem Kommentar
Share on other sites

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?

Link zu diesem Kommentar
Share on other sites

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. ;D

 

Sonst dümpelt die GPU des RED doch nur rum und zeigt so ein paar Pixelchen an. ;)

Warum sollte ich sie dann nicht nutzen.

Link zu diesem Kommentar
Share on other sites

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

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...