OpenGL + Linux



  • Hi,
    Ich werde dann wohl mit freeGLUT arbeiten, da es für fast alle BS gibt und man kann es ja statisch dazu linken damit der Anwender es nicht installieren muss.

    Nur gibt es irgendwo eine Anleitung für freeGLUT? Im prinzip brauch ich ja nur eine Einleitung da es ja nur für die Intalisierung und für die Ein- und Ausgabe von Eingabegeräten zuständig ist?!?!

    Wo liegt den eigentlich die lib von freeGlut unter Linux? Habe die dev Files über die Packetverwaltung installiert und muss sagen das ich Linux noch nicht so lange als Desktop system habe.

    :schland:



  • Dann schreib mal, was du für eine Distribution benutzt. Dann kann der erstbeste, der sich mit dieser Distribution und glut auskennt, dir das konkrete Paket nennen, wenn er hier vorbeikommt.

    Und freeglut ist möglichst kompatibel zu glut, also suchst du am besten für Anleitungen dafür.



  • Ich nutze Debian Etch.





  • Hi,
    Ich wollte nun aber trotzdem mal die lib selber bauen.
    Ich habe mir dazu die neuste version von sf gezogen und den Inhalt des src Ordners in CodeBlocks hinzugefügt.
    Wenn ich das nun Compiliere, läuft er durch, jedoch kommt am Schluss die Meldung "You must select a host application to "run" a library".
    Was muss ich da tun?
    Ich will ja nur die .a .so in dem Release verzeichnisses meines Projects.
    Ach ja ich mache das weil ich freeglut gern statisch dazulinken möchte (damit die Anwender es nicht installieren müssen)



  • Deine IDE will irgendetwas Ausführbares. Hast ihr vermutlich gesagt, dass sie das Projekt ausführen soll. Und eine Library ist eben keine vollwertige Anwendung sondern nur ein Rumpf, der in eine "Host Application" eingelinkt werden muss.



  • HI,
    Ja es gab da noch einen Hacken den man setzen konnte, nun funktionierts.

    Noch eine letzte Frage:
    Ist es sinnvoller es statisch zu linken oder es dynamisch und die .so dann dem Programm beilegen.
    Denn installieren muss er ja so bei beiden varianten nichts.



  • Auch wenn Du unbedingt statisch linken willst, ist es zumindest im Falle des Debian-Pakets nicht notwendig, Freeglut selber zu bauen, da ja dort auch eine libglut.a dabei ist.

    Und ich halte zumindest bei Bibliotheken, die sehr weit verbreitet sind (und da gehört Freeglut bzw. allgemein eine Glut-Implementierung dazu) immer dynamisches Linken für sinnvoll. Zum einen werden kann dann die Bibliothek aktualisiert werden, ohne dass Dein Programm beeinflusst wird und zum anderen ist Dein Programm dann auch nicht auf Freeglut beschränkt, sondern läuft(*) mit allen Bibliotheken, die die GLUT-Schnittstelle implementieren. Auch würde ich die .so nicht beilegen, sondern darauf verweisen, dass Freeglut benötigt wird. Vor allem bei Linux ist es Aufgabe des Paketmanagers, solche Bibliotheken verfügbar zu machen, wenn jede Anwendung ihre eigenen Bibliotheken mitbringt, wird das ganze Konzept eines Paketmanagers ad absurdum geführt.

    (*) Es startet zumindest...



  • Ich habe mit http://glfw.sourceforge.net/ sehr Guter erfahrungen gemacht. Ich arbeite auch immer noch damit.



  • Tag,
    Hab grad meine Probleme bei der Umsetzung der Nehe Tutorials und zwar kann es sein das OpenGL kein C++ unterstützt?
    Da so fehlermeldungen wie:

    error: argument of type ‘GLvoid (grafik::)()’ does not match ‘void (*)()’

    Aber wie kann ich das effektiv lösen? Ich will ja schon OOP nutzen.



  • Casten.



  • Sry, aber ich weiß nicht genau wie du das meinst.
    Also C kann ja nicht mit dem this Zeiger umgehen, aber den kann ich ja nicht einfach weglassen.


Anmelden zum Antworten