GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie man GLFW 3 erstellt und installiert und in einem Linux-Projekt verwendet

Beachten Sie, dass Sie nicht so viele -l benötigen s wenn Sie glfw mit dem BUILD_SHARED_LIBS installieren Möglichkeit. (Sie können diese Option aktivieren, indem Sie ccmake ausführen zuerst).

Hier entlang sudo make install installiert die gemeinsam genutzte Bibliothek in /usr/local/lib/libglfw.so .Sie können die Beispieldatei dann mit einem einfachen kompilieren:

g++ main.cpp -L /usr/local/lib/ -lglfw

Vergessen Sie dann nicht, /usr/local/lib/ zum Suchpfad für gemeinsam genutzte Bibliotheken hinzuzufügen, bevor Sie Ihr Programm ausführen. Dies kann mit:

erfolgen
export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}

Und das können Sie in Ihren ~/.bashrc einfügen Sie müssen es also nicht ständig eingeben.


Schritt 1:GLFW 3 mit CMAKE auf Ihrem System installieren

Für diese Installation habe ich KUbuntu 13.04, 64bit verwendet.

Der erste Schritt besteht darin, die neueste Version (vorausgesetzt, zukünftige Versionen funktionieren ähnlich) von www.glfw.org herunter, wahrscheinlich über diesen Link.

Der nächste Schritt besteht darin, das Archiv zu extrahieren und ein Terminal zu öffnen. cd in das Verzeichnis glfw-3.X.X und führen Sie cmake -G "Unix Makefiles" aus Möglicherweise benötigen Sie erhöhte Berechtigungen und müssen möglicherweise zuerst Build-Abhängigkeiten installieren . Versuchen Sie dazu sudo apt-get build-dep glfw oder sudo apt-get build-dep glfw3 oder Mach es manuell , wie ich es mit sudo apt-get install cmake xorg-dev libglu1-mesa-dev getan habe ... Möglicherweise gibt es andere Bibliotheken, die Sie benötigen, z. B. die pthread-Bibliotheken ... Anscheinend hatte ich sie bereits. (Siehe die -l-Optionen, die der G++-Linkerstufe weiter unten gegeben werden.)

Jetzt können Sie make eingeben und dann make install , wofür Sie wahrscheinlich sudo benötigen zuerst.

Okay, Sie sollten eine ausführliche Ausgabe der letzten drei CMake-Stufen erhalten, die Ihnen mitteilt, was erstellt oder wo es platziert wurde. (In /usr/include , zum Beispiel.)

Schritt 2:Testprogramm erstellen und kompilieren

Der nächste Schritt besteht darin, vim ("was?! vim?!" Sie sagen) oder Ihre bevorzugte IDE / Ihren bevorzugten Texteditor zu starten ... Ich habe nicht vim verwendet, ich habe Kate verwendet, weil ich auf KUbuntu 13.04 bin ... Wie auch immer, lade oder kopiere das Testprogramm von hier (am Ende der Seite) und speichere, beende es.

Jetzt mit g++ -std=c++11 -c main.cpp kompilieren - nicht sicher, ob c++11 erforderlich ist aber ich habe nullptr verwendet also, ich brauchte es... Möglicherweise müssen Sie Ihren gcc auf Version 4.7 oder die kommende Version 4.8 aktualisieren... Infos dazu hier.

Dann beheben Sie Ihre Fehler, wenn Sie das Programm von Hand getippt oder versucht haben, "zu schlau" zu sein und etwas nicht funktioniert hat ... Dann verknüpfen Sie es mit diesem Monster! g++ main.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi Sie sehen also, dass Sie im Teil "Build-Abhängigkeiten installieren" möglicherweise auch überprüfen möchten, ob Sie GL, GLU, X11 Xxf86vm (was auch immer das ist) Xrandr posix-thread und Xi (was auch immer das ist) development Bibliotheken auch installiert. Vielleicht aktualisieren Sie auch Ihre Grafiktreiber, ich denke, GLFW 3 erfordert möglicherweise OpenGL Version 3 oder höher? Vielleicht kann das jemand bestätigen? Möglicherweise müssen Sie auch die Linker-Optionen -ldl -lXinerama -lXcursor hinzufügen damit es richtig funktioniert, wenn Sie undefinierte Verweise auf dlclose erhalten (Dank an @user2255242).

Und ja, so viele -l habe ich wirklich gebraucht s!

Schritt 3:Sie sind fertig, haben einen schönen Tag!

Hoffentlich waren diese Informationen korrekt und alles hat für Sie funktioniert, und Sie haben Spaß daran, das GLFW-Testprogramm zu schreiben. Außerdem hoffe ich, dass dieser Leitfaden einigen Menschen in der Zukunft geholfen hat oder helfen wird, die Probleme hatten wie ich heute gestern!

Übrigens sind alle Tags die Dinge, nach denen ich auf Stackoverflow gesucht habe, um nach einer Antwort zu suchen, die es nicht gab. (Bis jetzt.) Hoffentlich sind sie das, wonach Sie gesucht haben, wenn Sie in einer ähnlichen Position wie ich waren.

Anmerkung des Autors:

Das ist vielleicht keine gute Idee. Diese Methode (mit sudo make install) könnte für Ihr System gefährlich sein. (Siehe Debian nicht kaputt machen)

Idealerweise sollte ich oder jemand anderes eine Lösung vorschlagen, die nicht nur lib-Dateien usw. in die Standardverzeichnisse des Systems installiert, da diese von Paketmanagern wie apt verwaltet werden sollten , und dies kann einen Konflikt verursachen und Ihr Paketverwaltungssystem beschädigen.

Siehe die neue „2020-Antwort“ für eine alternative Lösung.


Ich habe es so gelöst

Eine pkg-config-Datei beschreibt alle notwendigen Kompilierzeit- und Linkzeit-Flags und Abhängigkeiten, die zur Verwendung einer Bibliothek benötigt werden.

pkg-config --static --libs glfw3

zeigt mir das

-L/usr/local/lib -lglfw3 -lrt -lXrandr -lXinerama -lXi -lXcursor -lGL -lm -ldl -lXrender -ldrm -lXdamage -lX11-xcb -lxcb-glx -lxcb-dri2 -lxcb-dri3 -lxcb-present -lxcb-sync -lxshmfence -lXxf86vm -lXfixes -lXext -lX11 -lpthread -lxcb -lXau -lXdmcp  

Ich weiß nicht, ob all diese Libs tatsächlich zum Kompilieren notwendig sind, aber bei mir funktioniert es...


Linux
  1. So installieren und verwenden Sie Telnet unter Kali Linux

  2. Wie installiere und verwende ich den Linux-Bildschirm?

  3. So installieren und verwenden Sie SSHFS unter Linux

  4. So installieren und verwenden Sie Flatpak unter Linux

  5. So installieren und verwenden Sie Traceroute unter Linux

So installieren und verwenden Sie den Ping-Befehl unter Linux

So installieren und verwenden Sie Telnet auf Linux-Systemen

So installieren und verwenden Sie die ZSH-Shell unter Linux

So installieren und verwenden Sie den fd-Befehl unter Linux

So installieren und verwenden Sie Nu Shell unter Linux

So installieren und verwenden Sie Snapcraft unter Linux