OpenGL 프로그램 컴파일 (GL / gl.h 누락)


51

나는 완전한 리눅스 / 우분투 멍청한 놈 이므로이 질문의 멍청한 부분에 대해 사과하거나 후속 질문을합니다.

소프트웨어 엔지니어링 수업 그룹이 내 가정용 컴퓨터에 작성한 프로그램을 얻으려고합니다. 학교에는 Linux가 있으며 컴파일하고 잘 실행할 것입니다. VMWare를 다운로드하고 가상 컴퓨터에 Ubuntu를 설치 한 후 프로그램을 열려고합니다.

그러나 make 파일을 실행하려고 할 때 오류가 발생합니다.

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

학교 컴퓨터에서이 파일을 찾을 수없는 이유를 아는 사람이 있습니까? 그리고 그것을 다운로드하거나 올바른 장소에 가져 가려면 어떻게해야합니까?

답변:


83

나는 당신이 gl.h를 제공하는 dev 패키지가 없다고 생각합니다. apt-file사용할 명령 줄 도구입니다.

먼저 최신 상태인지 확인하십시오.

apt-file update

이제 "gl.h 파일을 제공하는 패키지는 무엇입니까?"라는 답변을 검색 할 수 있습니다.

apt-file search "gl.h"

지금 확인해야 할 우분투 상자가 없지만 결과는 mesa-dev 또는 opengl-dev와 같은 것 같습니다.

어떤 패키지가 "gl.h"를 ​​제공하는지 알게되면 (apt-file의 결과는 "libmesa-dev"인 것처럼 가장합니다) 설치하십시오 :

apt-get install libmesa-dev

적절한 명령 제품군에 대한 자세한 정보 : https://help.ubuntu.com/community/AptGet/Howto


도와 주셔서 감사합니다. 나는 당신이 제안한 것을 시도하고 검색 결과로 원래 게시물을 업데이트했습니다.
Seldom

그냥 놀아하기로 결정하고 mesa-common-dev 패키지를 다운로드했습니다. 그런 다음 usr / include / GL 폴더로 이동하여 폴더가 있음을 알았습니다. 방금 복사하여 붙여 넣은 프로젝트 폴더로 옮기면 작동하는 것 같습니다. 그러나 내 프로젝트에는 "glu.h"폴더가 필요하다는 오류가 발생하여 libcgal-dev 패키지를 다운로드하고 복사 / 붙여 넣기와 동일한 작업을 수행했습니다. 올바른 폴더에 넣고 make 명령을 실행하면 프로젝트가 컴파일되어 실행됩니다. 도움을 주셔서 대단히 감사합니다. 이제 그래픽 속도를 늦춰야합니다. :)
거의

빌드가 완료되어 다행입니다. 복사 / 붙여 넣기가 빠르고 더러워 지지만 포함이 잘못되었을 수 있습니다. 나는 많은 C ++을 모르지만 소스에서 일부 패키지를 컴파일하는 비슷한 문제가있었습니다. 솔루션 iirc는로 변경 #include <gl.h>하는 것과 같습니다 #include<gl/gl.h>.
djeikyb

21
아, 패키지 이름 만 알려주는 대신 물고기를 가르쳐 주셔서 감사합니다!
Brian Cain

2
apt-file에 대한 정보 감사합니다. GL / gl.h에 필요한 패키지는 다음과 같습니다 : mesa-common-dev (적어도 우분투 16.04의 경우)
ElazarR

36

에 대한 GL/gl.h사용 :

sudo apt install mesa-common-dev

다음과 같이 도움이 될 수도 있습니다 GL/glu.h.

sudo apt install libglu1-mesa-dev freeglut3-dev

포함 할 수도 있습니다libglfw3-dev libgles2-mesa-dev
rustyx

1

소스에서 glproto ( link ), libdrm ( link ) 및 mesa ( link )를 빌드 할 수도 있습니다 . 다른 많은 패키지가이 헤더 파일을 포함 할 수 있지만 소스로 이동하는 것이 중요합니다. 이렇게하면 설치의 메모리 공간이 줄어들고 최신 및 / 또는 가장 큰 버전이 설치됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.