115 votes

Comment construire et installer GLFW 3 et l'utiliser dans un projet Linux

GLFW3

Hier soir, je travaillais tard en essayant de construire les packages GLFW 3 pour Linux à partir de la source. Ce processus m'a pris beaucoup de temps, environ 3 heures au total, en partie parce que je ne suis pas familier avec CMake, et en partie parce que je ne connaissais pas GLFW.

J'espère que ce post vous évitera la difficulté que j'ai eue hier! J'ai pensé que je devrais faire un petit résumé, et espérons sauver ainsi plusieurs heures de votre vie...

Grâce à "urraka", "b6" et "niklas" sur le canal IRC #glfw, j'ai pu faire fonctionner la version 3.0.1 de glfw.

Il s'avère que ce n'est pas un processus trivial (sûrement pas pour moi, je ne suis pas expert) car il n'y a pas beaucoup de documentation sur le web à propos de glfw3, en particulier sur comment le configurer avec CMake.

On m'a demandé de diviser cela en une section question-réponse, et c'est ce que j'ai fait, et les parties réponse sont maintenant ci-dessous.

Êtes-vous un mainteneur de GLFW, ou un membre de l'équipe GLFW?

Si l'un des mainteneurs de GLFW3 voit ceci, mon message pour eux est s'il vous plaît ajoutez une section "configuration de GLFW3 sur Windows, Mac OS X et Linux" sur votre site web! Il est assez facile d'écrire des programmes avec GLFW, puisque la documentation en ligne est assez bonne, une analyse rapide de toutes les classes et modules disponibles et vous serez prêt à partir. L'exemple d'un projet de test présenté ici est également très bon. Les deux principaux problèmes que j'ai rencontrés étaient, d'abord comment configurer GLFW3 sur mon système, et deuxièmement comment construire un projet GLFW3? Ces deux choses ne sont peut-être pas assez claires pour un non-expert.

Éditer

J'ai jeté un coup d'œil rapide aujourd'hui (Date: 2014-01-14) il semble que le site web de GLFW ait subi de lourds changements depuis ma dernière visite et il y a maintenant une section sur la compilation de GLFW et la construction de programmes avec GLFW, qui sont je pense nouveaux.

0 votes

Merci d'avoir mis ceci ici - évidemment beaucoup de travail y a été investi. Auriez-vous l'amabilité de le diviser en question et réponse ? Vous pouvez ajouter votre propre réponse à votre propre question et la marquer comme correcte.

0 votes

@Fraser Oui bien sûr si tu penses que ce serait mieux de cette façon

1 votes

Je suis d'accord. J'aime beaucoup GLFW mais j'étais vraiment frustré de ne pas trouver de documentation sur la façon de compiler la v3 sous Mac, etc.

7voto

yehudahs Points 339

Cela m'a aidé à résoudre le problème :

sudo apt-get update
sudo apt-get install libglfw3
sudo apt-get install libglfw3-dev

provenant de https://github.com/glfw/glfw/issues/808

5voto

user2941878 Points 31

Excellent guide, merci. Étant donné la plupart des instructions ici, il presque s'est construit pour moi mais j'avais toujours une erreur restante.

/usr/bin/ld: //usr/local/lib/libglfw3.a(glx_context.c.o): référence indéfinie vers le symbole 'dlclose@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libdl.so.2: erreur lors de l'ajout des symboles : DSO manquant dans la ligne de commande
collect2: erreur: ld a retourné 1 en sortant

Après avoir cherché cette erreur, j'ai dû ajouter -ldl à la ligne de commande.

g++ main.cpp -lglfw3 -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lGL -lpthread -ldl

Ensuite, l'application d'exemple "hello GLFW" a été compilée et liée.

Je suis assez nouveau sur linux donc je ne suis pas complètement certain de ce que fait exactement cette bibliothèque supplémentaire... à part corriger mon erreur de liaison. Je vois bien ce commutateur en ligne de commande dans le post ci-dessus, cependant.

0 votes

J'ai reçu un fichier .o et un fichier .exec.. S'il vous plaît aidez-moi, comment le lancer?

0 votes

Je pense que vous pouvez exécuter le fichier exécutable comme ./main.exec. Sinon, partagez la commande que vous avez utilisée pour compiler votre code et générer le fichier .exec.

0voto

mathmaniage Points 87

Si quelqu'un devient paresseux et ne sait peut-être pas comment configurer le shell pour toutes ces bibliothèques et -l, alors j'ai créé un script python (vous devez avoir python3, la plupart des utilisateurs de Linux l'ont.) qui vous permet de compiler facilement des scripts et de les exécuter sans vous soucier beaucoup, il a juste des appels système réguliers, simplement agencés, je l'ai créé pour moi-même mais peut-être que cela pourrait être utile : Ici

0voto

SHi ON Points 1621

La réponse bien décrite est déjà là, mais j'ai suivi cette recette PLUS COURTE:

  1. Installer Linuxbrew
  2. $ brew install glfw
  3. cd /home/linuxbrew/.linuxbrew/Cellar/glfw/X.X/include
  4. sudo cp -R GLFW /usr/include

Explication: Nous parvenons à construire GLFW avec CMAKE qui est fait par Linuxbrew (portage Linux du bien-aimé Homebrew). Ensuite, copiez les fichiers d'en-tête là où Linux lit depuis (/usr/include).

0voto

Olivia Smith Points 13

Gérer manuellement les bibliothèques est épuisant et, eh bien, difficile à gérer. Beaucoup de ces solutions proposées par d'autres personnes sont excellentes, mais ce que je recommanderais de faire, c'est d'utiliser un gestionnaire de paquets multiplateforme qui peut gérer tout cela pour vous, comme vcpkg. Il vous suffit d'installer vcpkg et vous pourrez facilement installer, désinstaller et simplement maintenir les bibliothèques que vous souhaitez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X