Compilar o programa OpenGL (ausente GL / gl.h)

50

Eu sou um noob completo do Linux / Ubuntu, então peço desculpas por qualquer parte idiota desta pergunta ou por outras de acompanhamento.

Estou tentando obter um programa que o grupo da minha turma de engenharia de software escreveu no meu computador doméstico. Na escola, temos o Linux e ele compila e roda bem lá. Baixei o VMWare, instalei o Ubuntu em uma máquina virtual e agora estou tentando abrir meu programa.

No entanto, sempre que tento executar meu arquivo make, recebo um erro que diz

gcc -I../include -pthread -O1 -c rain.c
In file included from rain.c:19:0:
../include/GL/glfw.h:176:21: fatal error: GL/gl.h: No such file or directory
compilation terminated.
make: *** [rain.o] Error 1

Alguém saberia por que ele não consegue encontrar esse arquivo, quando pode nos computadores da minha escola? E o que eu precisaria fazer para baixá-lo ou colocá-lo no lugar certo?

Raramente
fonte

Respostas:

84

Eu acho que você não tem nenhum pacote de desenvolvimento que fornece gl.h. apt-fileé a ferramenta de linha de comando a ser usada.

Primeiro, verifique se está atualizado:

apt-file update

Agora você pode escrever uma pesquisa para responder "que pacote fornece o arquivo gl.h?"

apt-file search "gl.h"

Agora não tenho uma caixa do ubuntu para verificar, mas acho que o resultado será algo como mesa-dev ou opengl-dev.

Depois de saber qual pacote fornece "gl.h" (vamos fingir que o resultado do apt-file é "libmesa-dev"), instale-o:

apt-get install libmesa-dev

Mais informações sobre a família de comandos apt: https://help.ubuntu.com/community/AptGet/Howto

djeikyb
fonte
Obrigado pela ajuda. Eu tentei o que você sugeriu e atualizei o post original com a saída da pesquisa.
raramente
Decidiu apenas brincar com ele e baixou o pacote mesa-common-dev. Então eu consegui navegar para a pasta usr / include / GL e descobri que ela estava lá. Eu mudei apenas copiei / colei na pasta do meu projeto e parecia funcionar. Mas então, meu projeto estava dando um erro de que precisava de uma pasta "glu.h", então baixei o pacote libcgal-dev e fiz o mesmo com a copiar / colar. Depois de colocar isso na pasta correta e executar o comando make, o projeto compila e será executado. Então, muito obrigado pela ajuda. Agora só preciso diminuir a velocidade dos gráficos. :)
Raramente
Que bom que você conseguiu a compilação para trabalhar! Sua cópia / pasta é rápida e suja, mas corretamente, suas inclusões podem estar erradas. Eu não sei muito c ++, mas tive um problema semelhante ao compilar alguns pacotes da fonte. Solução, iirc, era como mudar #include <gl.h>para #include<gl/gl.h>.
djeikyb 11/06
21
Oh, cara, muito obrigado por me ensinar a pescar em vez de apenas me dar o nome do pacote!
Brian Cain
2
Obrigado pela informação no apt-file. Em relação ao pacote necessário para o GL / gl.h, é: mesa-common-dev (pelo menos para o Ubuntu 16.04)
ElazarR 17/16/16
37

Para GL/gl.huso:

sudo apt install mesa-common-dev

Você também pode achar úteis, por exemplo GL/glu.h:

sudo apt install libglu1-mesa-dev freeglut3-dev
Richard
fonte
Você também pode querer incluirlibglfw3-dev libgles2-mesa-dev
rustyx
1

Você também pode criar glproto ( link ), libdrm ( link ) e, em seguida, mesa ( link ) a partir da fonte. Enquanto muitos outros pacotes podem conter esse arquivo de cabeçalho, é importante ir para a fonte. Isso reduzirá o espaço ocupado pela memória de suas instalações e garantirá que você tenha a versão mais recente e / ou melhor.

Adam Erickson
fonte