Acabo de reinstalar QtCreator, crea un nuevo proyecto (Aplicación Qt) una tiene esto después de la compilación:

/usr/bin/ld: **cannot find -lGL**
collect2: error: ld returned 1 exit status
make: *** [untitled1] Error 1
18:07:41: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project untitled1 (kit: Desktop Qt 5.1.0 GCC 32bit)
When executing step 'Make'

(Proyecto está vacío, me hizo n’cometer cualquier cambio)

Qt Creator 2.7.2

Basado en Qt 5.1.0 (32 bits)

Ubuntu 13.04

¿Cómo puedo resolver este problema?

InformationsquelleAutor Hofmn | 2013-08-23

7 Comentarios

  1. 136

    Usted debe instalar el paquete «libgl1-mesa-dev»:

    sudo apt install libgl1-mesa-dev
    • ¿Cómo es la respuesta correcta? ¿Por qué debería enlace en contra de una biblioteca que no están siendo utilizados? No debería el enlazador simplemente no incluyen -lGL?
    • El GL en el error y en libgl1-… es para OpenGL, un eje fundamental de la dependencia de Qt 5.x. Este es un error común para los desarrolladores cuando se configura para el desarrollo de Qt-pero una vez que se instale el OpenGL desarrollo lib que nunca lo vuelva a ver.
    • si usted termina para arriba a esta pregunta, pero usted tiene redhat/centos…. mesa-libGL-devel
  2. 59

    usted no necesita instalar nada. libGL ya está instalado con Ubuntu, solo necesitas suave enlace. (probado para ubuntu 14.x y 15.x, podría funcionar para las versiones posteriores)

    1. Primero localizar la librería GL
    2. A continuación, enlace debajo de /usr/lib
    3. Si la biblioteca no se encuentra, puede ser instalado a través de libgl1-mesa-dev paquete

    Aquí es cómo usted puede hacer esto:

    $ locate libGL
    /usr/lib/i386-linux-gnu/mesa/libGL.so.1
    /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
    /usr/lib/x86_64-linux-gnu/libGLEW.so.1.10
    /usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0
    /usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10
    /usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10.0
    /usr/lib/x86_64-linux-gnu/libGLU.so.1
    /usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
    /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
    /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
    /usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2
    /usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2.0.0
    $ sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so
    • Sí, esto funciona. Normalmente es una buena idea para ejecutar ldconfig después de tratar con las bibliotecas compartidas, como en este caso.
    • Gracias por la respuesta! En mi sistema he tenido varios libGL porque de sdk de Android, vapor y otras aplicaciones. El original de la mesa de la carpeta también estuvo presente en i386-linux-gnu carpeta. Cualquiera que esté leyendo esta respuesta, usted puede localizar fácilmente las que se instalan por defecto de la biblioteca en Ubuntu mediante la ejecución de locate libGL | grep mesa y, a continuación, modifique la última sudo ln de comandos mencionados en esta respuesta con la ubicación correcta.
    • Esto funcionó para mí en Ubuntu 16.10, pero estoy confundido si es que ahora el uso de la GPU de NVidia para el renderizado de OpenGL, o un s/w representador?
    • Esta respuesta no parece resolver el pkg-config pregunta, ¿es así? Es decir: si usted tiene qt construcción de las líneas configurado para utilizar pkg-config –libs, esta solución aún no devuelve nada para el GL? Para estar en el lado seguro, simplemente he instalado la mesa-dev.
    • Gracias. Esto funciona para mí.
    • Esto funcionó para mí en RHEL7.4. Gracias.
    • Usted, Señor, que merece la cookie no el estafador que fue la gran marca
    • Para mí en Ubuntu 18.04 vincular en la misma ubicación con el siguiente comando. sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.así.1.0.0 /usr/lib/x86_64-linux-gnu/libGL.así
    • vincular el archivo no se soluciona el problema, en mi caso, el compilador se quejó: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libGL.so when searching for -lGL /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lGL

  3. 1

    La interfaz gráfica de usuario Qt módulo es incluye por defecto. Si usted no desea utilizar en un proyecto (por ejemplo, es una biblioteca o solo usa stdio), es necesario especificar que en el .pro archivo.

    QT -= gui

    Y el enlazador no intenta encontrar lGL independientemente de si está instalado.

    Mi caso es cierto que un poco extraño, ya que la principal razón para el uso de Qt es crear la interfaz gráfica de usuario. La instalación de la GL de la biblioteca no es ciertamente difícil, yo sólo quería saber por qué mi rápido y sucio Hola Mundo la quería.

  4. 1

    Mi sistema es Ubuntu 16.04 en equipo X86(con NVIDIA Geforce GPU).

    Compruebe el archivo de la biblioteca de localizar en /usr/lib/x86_64-linux-gnu

    ls -al /usr/lib/x86_64-linux-gnu/libG*

    Si ves el enlace roto, vuelva a instalar libgl1-mesa-glx

    sudo apt install --resintall libgl1-mesa-glx

    Y, vuelva a comprobar la biblioteca.

  5. -1

    Resuelto este problema sólo un minuto atrás en suse.
    Acaba de hacer el siguiente paso a continuación y QTCreator deben funciona bien.

    sudo zypper install –tipo de patrón devel_basis

Dejar respuesta

Please enter your comment!
Please enter your name here