GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo compilar e instalar GLFW 3 y usarlo en un proyecto de Linux

Tenga en cuenta que no necesita tantos -l s si instala glfw con el BUILD_SHARED_LIBS opción. (Puede habilitar esta opción ejecutando ccmake primero).

De esta manera sudo make install instalará la biblioteca compartida en /usr/local/lib/libglfw.so .Luego puede compilar el archivo de ejemplo con un simple:

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

Entonces no olvide agregar /usr/local/lib/ a la ruta de búsqueda de bibliotecas compartidas antes de ejecutar su programa. Esto se puede hacer usando:

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

Y puedes poner eso en tu ~/.bashrc para que no tengas que escribirlo todo el tiempo.


Paso 1:Instalación de GLFW 3 en su sistema con CMAKE

Para esta instalación, estaba usando KUbuntu 13.04, 64 bits.

El primer paso es descargar la última versión (suponiendo que las versiones futuras funcionen de manera similar) desde www.glfw.org, probablemente usando este enlace.

El siguiente paso es extraer el archivo y abrir una terminal. cd en el directorio glfw-3.X.X y ejecute cmake -G "Unix Makefiles" es posible que necesite privilegios elevados y que también deba instalar dependencias de compilación primero . Para hacer esto, intente sudo apt-get build-dep glfw o sudo apt-get build-dep glfw3 o hazlo manualmente , como hice usando sudo apt-get install cmake xorg-dev libglu1-mesa-dev ... Puede haber otras bibliotecas que necesite, como las bibliotecas pthread... Aparentemente ya las tenía. (Consulte las opciones -l otorgadas a la etapa del enlazador g++, a continuación).

Ahora puedes escribir make y luego make install , lo que probablemente requerirá que sudo primero.

De acuerdo, debería obtener un resultado detallado en las últimas tres etapas de CMake, que le indicará qué se ha construido o dónde se ha colocado. (En /usr/include , por ejemplo.)

Paso 2:Crea un programa de prueba y compila

El siguiente paso es encender vim ("¡¿qué?! ¡¿vim?!" dices) o tu IDE/editor de texto preferido... No usé vim, usé Kate, porque estoy en KUbuntu 13.04... De todos modos, descargue o copie el programa de prueba desde aquí (en la parte inferior de la página) y guarde, salga.

Ahora compila usando g++ -std=c++11 -c main.cpp - no estoy seguro si c++11 es requerido pero usé nullptr entonces, lo necesitaba... Es posible que deba actualizar su gcc a la versión 4.7, o la próxima versión 4.8... Información sobre eso aquí.

Luego corrige tus errores si escribiste el programa a mano o trataste de ser "demasiado inteligente" y algo no funcionó... ¡Luego vincúlalo usando este monstruo! g++ main.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi Como puede ver, en la parte "instalar dependencias de compilación", también puede comprobar que tiene el desarrollo Bibliotecas instaladas también. Tal vez también actualice sus controladores de gráficos, creo que GLFW 3 puede requerir OpenGL versión 3 o superior. ¿Quizás alguien pueda confirmar eso? Es posible que también deba agregar las opciones del enlazador -ldl -lXinerama -lXcursor para que funcione correctamente si obtiene referencias indefinidas a dlclose (crédito a @user2255242).

Y sí, realmente necesitaba tantos -l s!

Paso 3:Has terminado, ¡que tengas un buen día!

Esperemos que esta información sea correcta y que todo haya funcionado para usted, y haya disfrutado escribiendo el programa de prueba GLFW. También espero que esta guía haya ayudado, o ayudará, a algunas personas en el futuro que estaban luchando como yo hoy ayer!

Por cierto, todas las etiquetas son las cosas que busqué en stackoverflow buscando una respuesta que no existía. (Hasta ahora). Con suerte, son lo que buscabas si estuvieras en una posición similar a la mía.

Nota del autor:

Esto podría no ser una buena idea. Este método (usando sudo make install) podría ser peligroso para su sistema. (Consulte No rompa Debian)

Idealmente, yo, o alguien más, debería proponer una solución que no solo instale archivos lib, etc. en los directorios predeterminados del sistema, ya que estos deberían ser administrados por administradores de paquetes como apt y hacerlo puede causar un conflicto y romper su sistema de administración de paquetes.

Consulte la nueva "respuesta de 2020" para obtener una solución alternativa.


Lo resolví de esta manera

Un archivo pkg-config describe todos los indicadores y dependencias necesarios en tiempo de compilación y tiempo de enlace necesarios para usar una biblioteca.

pkg-config --static --libs glfw3

me muestra que

-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  

No sé si todas estas bibliotecas son realmente necesarias para compilar, pero para mí funciona...


Linux
  1. Cómo instalar y usar telnet en Kali Linux

  2. ¿Cómo instalar y usar Linux Screen?

  3. Cómo instalar y usar SSHFS en Linux

  4. Cómo instalar y usar Flatpak en Linux

  5. Cómo instalar y usar Traceroute en Linux

Cómo instalar y usar el comando Ping en Linux

Cómo instalar y usar Telnet en sistemas Linux

Cómo instalar y usar ZSH Shell en Linux

Cómo instalar y usar el comando fd en Linux

Cómo instalar y usar Nu Shell en Linux

Cómo instalar y usar Snapcraft en Linux