Opengl para Ubuntu14 (construção de QT 5.4)

1

Eu tenho uma nova instalação de Ubuntu 14 LTS desta manhã, estou usando um PC com Nvidia graphic cards e instalei com êxito a versão mais recente do driver no site da Nvidia ( NVIDIA-Linux-x86_64-352.30 ).

Eu estou tentando construir QT 5.4 (qt-everywhere-opensource-src-5.4.2) e estou enfrentando um problema com ele não sendo capaz de encontrar opengl .

Eu instalei os seguintes pacotes para resolver todas as dependências:

sudo apt-get update
sudo apt-get install libxi-dev build-essential libdbus-1-dev libfontconfig1-dev     libfreetype6-dev    libx11-dev    libxext-dev     libxfixes-dev    libxi-dev    libxrender-dev    libxcb1-dev    libx11-xcb-dev    libxcb-glx0-dev libxcb-keysyms1-dev    libxcb-image0-dev    libxcb-shm0-dev    libxcb-icccm4-dev    libxcb-sync0-dev    libxcb-xfixes0-dev    libxcb-shape0-dev    libxcb-randr0-dev    libxcb-render-util0-dev

e finalmente:

sudo apt-get install mesa-common-dev
sudo apt-get install libglu1-mesa-dev

Tanto quanto eu sei o acima deve instalar completamente os pacotes opengl para o Ubuntu.

Eu então tento configurar o QT usando o seguinte comando:

./configure -v -confirm-license -developer-build -opensource -xinput2 -dbus -opengl desktop -nomake examples -nomake tests)

Eu recebo o seguinte erro:

OpenGL auto-detection... ()
g++ -c -pipe -O2 -Wall -W -fPIC  -I. -I../../../mkspecs/linux-g++ -o opengldesktop.o opengldesktop.cpp
g++ -Wl,-O1 -o opengldesktop opengldesktop.o   -lGL 
/usr/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status
make: *** [opengldesktop] Error 1
OpenGL disabled.
The OpenGL functionality test failed!
 You might need to modify the include and library search paths by editing
 QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL

Eu tenho procurado por um tempo agora e só posso supor que eu tenho todos os pacotes certos instalados, mas algo está faltando no caminho do sistema. O que pode estar faltando e como adicioná-lo ao caminho do sistema?

A seguinte saída pode ajudar:

ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so.1
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    
por theAlse 31.07.2015 / 09:38

5 respostas

1

Provavelmente é o pacote libgl1-mesa-dev .

    
por Velkan 16.11.2015 / 15:54
1

Corri para o mesmo problema no Debian 8.5: Nvidia driver + todas as libs recomendadas em Construindo o Qt5 do Git instalado, mas configure a etapa de Qt 5.9 não conseguiu causar a falta do suporte OpenGL.

Trecho:

  • Qt configura verificações para suporte ao openGL vinculando o material com libGL.so - mas a biblioteca está faltando
  • libGL.so é fornecido por libgl1-mesa-glx que adiciona um link simbólico de libGL.so a libGL.so.x.y.z (no meu caso libGL.so.1.2.0 )
  • de acordo com dpkg , libGL.so.1.2.0 também faz parte de libgl1-mesa-glx - mas ausente por "motivos"
  • a verificação de outras versões do libGL.so revela que existe uma versão da biblioteca instalada pelo driver da Nvidia ( /usr/lib/x86_64-linux-gnu/libGL.so.346.35 )
  • adicionando um link simbólico a este arquivo resolveu o problema

    sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.346.35 /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0
    
  • execute novamente configure usando o sinalizador -recheck

Procedimento passo a passo (também pode ser aplicado a problemas semelhantes):

$ ./configure -opensource -confirm-license -recheck -v 1>dump 2>&1
...
> grep 'libGL.so.*No' dump

> /usr/bin/ld.gold: error: cannot open /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/libGL.so: No such file or directory
> /usr/bin/ld.gold: error: cannot open /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/libGL.so: No such file or directory

$ ls -l /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/libGL.so
lrwxrwxrwx 1 root root 14 Aug 19  2015 /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/libGL.so -> libGL.so.1.2.0

libGL.so.1.2.0 está faltando, verifique o provedor ...

$ dpkg -S libGL.so.1.2.0
libgl1-mesa-glx:amd64: /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0

$ dpkg -l libgl1-mesa-glx
...
||/ Name                                     Version                   Architecture              Description
+++-========================================-=========================-=========================-=====================================================================================
ii  libgl1-mesa-glx:amd64                    10.3.2-1+deb8u1           amd64                     free implementation of the OpenGL API -- GLX runtime

Portanto, a biblioteca libgl1-mesa-glx está instalada, mas o libGL.so.1.2.0 está ausente no caminho. Verifique se há outros arquivos libGL.so* ...

$ find /usr/lib -name libGL.so*
/usr/lib/x86_64-linux-gnu/libGL.so.346.35
/usr/lib/x86_64-linux-gnu/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGL.so
/usr/lib/libGL.so.1

O /usr/lib/x86_64-linux-gnu/libGL.so.346.35 é o único openGL lib válido na minha caixa (foi instalado pelo instalador do driver Nvidia).

Solução:

sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.346.35 /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0
    
por Thomas Tannhäuser 19.09.2017 / 13:53
0

Eu tive o mesmo problema no Ubuntu 16.04 com o Qt 5.9. Primeiro eu executei o configure quando o libgl1-mesa-dev e o libglu1-mesa-dev não estavam instalados. Depois disso, instalei essas bibliotecas libgl *. Mas o erro "OpenGL não encontrado" permaneceu. O erro desapareceu depois que o diretório descompactado atual foi excluído e o arquivo foi descompactado novamente.

    
por grin 06.06.2017 / 23:48
0

o seguinte detecta o Desktop OpenGL no sistema Mint 17.3 de 32 bits com placa Nvidia e drivers proprietários. /root/work/qt5_setup/qt-everywhere-src-5.10.0/configure --prefix = / root / work / qt5_setup / qt_install -opensource -confirm-license -platform linux-clang-libc ++

as opções de plataformas podem ser encontradas em /root/work/qt5_setup/qt-everywhere-src-5.10.0/qtbase/mkspecs

Antes de instalar acima clang (compilador C, C ++ e Objective-C (baseado em LLVM)) e libc ++ - dev (biblioteca padrão LLVM C ++ (arquivos de desenvolvimento))

O LLVM é uma coleção de bibliotecas e ferramentas que facilitam a construção de compiladores, otimizadores, geradores de código just-in-time e muitos outros programas relacionados ao compilador.

Considerando que /root/work/qt5_setup/qt-everywhere-src-5.10.0/configure --prefix = / root / work / qt5_setup / qt_install -opensource -confirm-license

com opções de plataforma padrão (linux-g ++ linux-g ++ - 32) não encontrou Desktop OpenGL

    
por noel av 17.05.2018 / 04:43
0

A solução abaixo falhou para mim no estágio posterior com o clang-c ++ incapaz de compilar a fonte qt corretamente. Assim, postando outra solução usando o próprio compilador g ++.

As etapas a seguir detectam o Desktop OpenGL no sistema Mint 17.3 de 32 bits com placa Nvidia e drivers proprietários. no arquivo /root/work/qt5_setup/qt-everywhere-src-5.10.0/qtbase/mkspecs/common/linux.conf que é incluído por /root/work/qt5_setup/qt-everywhere-src-5.10.0/qtbase/mkspecs/linux-g ++ / qmake.conf

as variáveis de ambiente devem ser definidas para:

QMAKE_INCDIR_OPENGL="/ usr / include / GL" QMAKE_LIBDIR_OPENGL="/ usr / lib /" QMAKE_INCDIR_OPENGL_ES2 = $$ QMAKE_INCDIR_OPENGL QMAKE_LIBDIR_OPENGL_ES2 = $$ QMAKE_LIBDIR_OPENGL

QMAKE_LIBS_OPENGL = -lGL QMAKE_LIBS_OPENGL_ES2 = -lGLESv2

A libGL usada aponta para a biblioteca fornecida pelo driver da Nvidia em meu sistema. /usr/lib/libGL.so - > /usr/lib/i386-linux-gnu/libGLX_nvidia.so.390.48

Considerando que /usr/lib/i386-linux-gnu/libGL.so - > mesa / libGL.so para a biblioteca fornecida pelo Mesa3D.

Certifique-se também de que o table-common-dev, o libglu1-mesa-dev, o libgl1-mesa-dev e outros pacotes de desenvolvimento OpenGL estão instalados.

/root/work/qt5_setup/qt-everywhere-src-5.10.0/configure --prefix = / root / work / qt5_setup / qt_install -opensource -confirm-license -platform linux-g ++ & amp; & amp; faça -j 5

    
por noel av 17.05.2018 / 23:42