Seite 1 von 3

Suche freeglut 3.0.0 als statische *.LIB

Verfasst: 14.04.2018 19:07
von Mijikai
Ich suche freeglut 3.0.0 als statische library. :(

freeglut:
https://www.transmissionzero.co.uk/soft ... lut-devel/
http://freeglut.sourceforge.net

Leider kenn ich mich zu wenig aus um diese selbst zu erzeugen :oops:

Re: Suche freeglut 3.0.0 als statische *.LIB

Verfasst: 14.04.2018 21:22
von ccode_new
Hallo Mijikai,

beim statischen Linken muss man auch alle Abhängigkeiten (der Reihe nach) mit linken.

Unter welchen Betriebssystem (und unter welchem Compiler-System) möchtest du denn die libglut.a(lib) linken ?

Re: Suche freeglut 3.0.0 als statische *.LIB

Verfasst: 15.04.2018 01:44
von Mijikai
ccode_new hat geschrieben:...Unter welchen Betriebssystem (und unter welchem Compiler-System) möchtest du denn die libglut.a(lib) linken ?

Es wäre (MSVC) Windows 10 primär x64
damit die *.lib mit PB verwendet werden kann.

Code: Alles auswählen

Import "freeglut_static.lib"
  glutInit(...)
  ...
EndImport

Re: Suche freeglut 3.0.0 als statische *.LIB

Verfasst: 15.04.2018 11:53
von edel
guck mal hier:
https://www.npcglib.org/~stathis/blog/b ... /#freeglut

Muesste aber schon was aelter sein.

Alternativ einfach mal die statische Lib aus dem MinGW Paket versuchen. Die ist dann auch aktuell.

Re: Suche freeglut 3.0.0 als statische *.LIB

Verfasst: 15.04.2018 19:47
von Mijikai
Danke für den Link & Hinweis :)
mal sehen ob es damit geht.

Re: Suche freeglut 3.0.0 als statische *.LIB

Verfasst: 15.04.2018 19:53
von ccode_new
Mmmh!

Statisches Linken ist uncool!

Müsste man dann nicht ALLE Funktionen (Funktionsheader) Purebasic bekannt geben bevor da auch nur irgend etwas klappt.

Und free_glut (ehemals GLUT), also libglut.a/lib enthält sehr viele Funktionen. Enthalten in diesen ganzen Objectdateien:

libglut_la-freeglut_callbacks.o libglut_la-freeglut_cursor.o libglut_la-freeglut_display.o libglut_la-freeglut_ext.o libglut_la-freeglut_font.o libglut_la-freeglut_font_data.o libglut_la-freeglut_gamemode.o libglut_la-freeglut_geometry.o libglut_la-freeglut_glutfont_definitions.o libglut_la-freeglut_init.o libglut_la-freeglut_input_devices.o libglut_la-freeglut_joystick.o libglut_la-freeglut_main.o libglut_la-freeglut_menu.o libglut_la-freeglut_misc.o libglut_la-freeglut_overlay.o libglut_la-freeglut_spaceball.o libglut_la-freeglut_state.o libglut_la-freeglut_stroke_mono_roman.o libglut_la-freeglut_stroke_roman.o libglut_la-freeglut_structure.o libglut_la-freeglut_teapot.o libglut_la-freeglut_videoresize.o libglut_la-freeglut_window.o libglut_la-freeglut_xinput.o

... mit noch weiteren Abhängigkeiten.

Unter C (Z.Bsp. bei Linux) hat man da ja auch noch die DEV-Header-Dateien.

Unter Linux kann man die freeglut_libs dank cmake-files ja sehr einfach kompilieren.

cmake (Freeglut-Verzeichnis) ;Erstellt ein makefile
make
make install

Es gibt ja aber auch für Linux oder Windows schon fertig kompilierte statische/dynamische Freeglut-Libs.

Persönlich ziehe ich ja die dynamische Variante vor.

Mit Static-Bindings kenne ich mich auch zu wenig aus.

Re: Suche freeglut 3.0.0 als statische *.LIB

Verfasst: 15.04.2018 20:13
von Mijikai
Ich hab bisher nur statische libs in fasm geschrieben (fasm *.obj -> *.lib).

Statische libs sind einfach zu verwenden:

Code: Alles auswählen

Import "statische.lib"
   Funktion1(a,b,c)
   Funktion2(a,b,c)
EndImport
Also das Gleiche wie bei einer dynamische lib, nur das danach
keine *.dll mit rumgeschleppt werden muss.

Re: Suche freeglut 3.0.0 als statische *.LIB

Verfasst: 15.04.2018 20:18
von ccode_new
Ja....

Aber du müsstest doch mindestens ALLE Funktionsköpfe definieren.
Nicht nur welche du gerne hättest. (Wie bei Shared-Libs)

Und ich glaube das ganze hat noch andere Fallstricke.

Aber probiere erst einmal.

Du bist doch clever!

Re: Suche freeglut 3.0.0 als statische *.LIB

Verfasst: 15.04.2018 20:24
von RSBasic
Mijikai hat geschrieben:Also das Gleiche wie bei einer dynamische lib, nur das danach
keine *.dll mit rumgeschleppt werden muss.
Falls das wirklich ein Problem bzw. Nachteil sein sollte, könnte man die DLL-Datei auch inkludieren und beim Start ins Temp-Verzeichnis entpacken. Dann hat man auch nur eine einzige Executable-Datei.
Und für später CatchLibrary(): http://www.purebasic.fr/english/viewtop ... =3&t=43442

Re: Suche freeglut 3.0.0 als statische *.LIB

Verfasst: 16.04.2018 05:40
von edel
ccode_new hat geschrieben:Ja....

Aber du müsstest doch mindestens ALLE Funktionsköpfe definieren.
Nicht nur welche du gerne hättest. (Wie bei Shared-Libs)

Und ich glaube das ganze hat noch andere Fallstricke.

Aber probiere erst einmal.

Du bist doch clever!
Nein, darauf kann verzichtet werden. Im besten Fall hast du zwar alle Funktionen in deinem Importblock, es reicht aber nur die Funktionen zu importieren, die man benutzt. Den Rest erkennt der Linker selber.