Registriert: Do Aug 25, 2005 16:00 Beiträge: 189
Programmiersprache: Java, C#
Hi.
Ich hab heute versucht auf die OpenGL Extensions unter C++ zuzugreifen. Dazu wollte ich glew nehmen.
Meine IDE ist btw. Codeblocks.
Nur bekomme ich es nicht richtig hin. Der Pfad zu den Header-Files ist unter den Global compiler settings eingetragen, genauso wie der Linker den Pfad zu den .lib Dateien kennt.
Die Datei glew.h wird also gefunden, genauso wie die beiden .lib dateien glew32.lib und glew32s.lib
Das Problem ist, beim kompilieren bekomme ich die Fehlermeldung "cannot find -lglew32.lib".
Die existiert aber im offiziellen Download nicht und Google findet auch nichts
Jemand das Problem schonma gehabt? Hier laufen ja auch einige C++'ler rum, wie sorgt ihr dafür das ihr die Extensions nutzen könnte?
edit: hm, ich raff nich so ganz warum ich es beim visual c++ hinbekomme, aber nich bei codeblocks
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Du linkst das ganze falsch.
Erstmal, sollte gcc/mingw32 die .lib völlig kalt lassen, da diese von MS VSC++ sind.
Du brauchst Datein mit .dll oder .a Endung.
Erstens sind dynamische Bibliotheken und 2. sind statische Bibliotheken.
Die suchreihenfolge des Compilers sieht wie folgt aus, finde in einen der Bibliotheksordner eine .dll file, wenn nicht vorhanden such eine .a.
Mitteilen tutst du das Linken, indem du in deinem Projekt rechtsklick->Properties->Build Taget->Target auswählen und Build options klicken->im Linker settings trägst du -lglew32 ein und unter Search directories->Linker-> gibst du den Pfad zu deiner a/dll File an und bei Compiler gibst du den Ordner mit dem Header an.
So musst du das für jedes Projekt aufs neue machen aber es ist wesentlich sauberer als über die allgmeinen Compiler settings.
Wenn du wirklich statisch linken willst, dann musst du entweder die dll aus allen ordnern entfernen oder explizit pfad/glew32.a statt -lglew32 angeben.
Ich hab vorgestern mein Projekt auch angefangen auf Code::Blocks umzustellen und nutze ebenfalls glew.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Diese habe ich aus meiner Makefile kopiert, also die Flags für optimierung und Warnungen kannst du noch entsprechend anpassen, sowie den include pfad.
Ausführen solltest du den Befehl im src Ordner von glew Package.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Do Aug 25, 2005 16:00 Beiträge: 189
Programmiersprache: Java, C#
Erstma danke für die Antwort.
TAK2004 hat geschrieben:
Du brauchst Datein mit .dll oder .a Endung. Erstens sind dynamische Bibliotheken und 2. sind statische Bibliotheken. Die suchreihenfolge des Compilers sieht wie folgt aus, finde in einen der Bibliotheksordner eine .dll file, wenn nicht vorhanden such eine .a. Mitteilen tutst du das Linken, indem du in deinem Projekt rechtsklick->Properties->Build Taget->Target auswählen und Build options klicken->im Linker settings trägst du -lglew32 ein und unter Search directories->Linker-> gibst du den Pfad zu deiner a/dll File an und bei Compiler gibst du den Ordner mit dem Header an.
Hm, bin ich zu doof dafür? Auf der Website von glew finde ich irgendwie weder im Source-Download noch bei den Binaries eine Datei mit .a Endung.
Die einzige .dll die mitgeliefert wird ist im bin Ordner (beim Binaries Download) dabei - also die .dll die gebraucht wird um die Programme später auszuführen.
Die meinst du aber nicht, wenn du sagst das die .dll brauch, oder?
(Falls ja hab ich irgendwo nen anderen Fehler gemacht)
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Das Package von der Seite enthält keine a file, die musst du selber compilieren, da sind nur die dynamische bibliothek(dll) dabei.
Die lib Datein, die dabei liegen sind für VSC++ notwendig.
Wenn du Statisch linken willst, dann musst du dir selber die a files compilieren, siehe dem gcc Befehl aus meinen letztem Post.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.