OpenGL + Linux
-
Ich nutze Debian Etch.
-
Hier steht, wo hininstalliert wird
http://packages.debian.org/etch/i386/freeglut3-dev/filelist
-
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.