2시간의 삽질 끝에 성공한 GLFW, GLAD 환경설정 과정을 정리한다.
개발환경 세팅이 언제나 제일 어렵다..
GLFW 설치
GLFW (Graphics Library Framework) 는 OpenGL에서 데스크톱 개발을 하기 위한 도구를 제공한다.
그래픽스 개념을 적용하여 어플리케이션을 만드는 도구이다.
학교 강의록에서는 교수님이 CMake를 설치하고 직접 GLFW 파일을 빌드하여 사용하는 것을 알려주셨다.
https://www.glfw.org/download.html
그대로 따라하면서 계속 뭔가 막혀서 답답했는데 이 사이트에 가면 이미 빌드된 파일을 함께 제공한다.
컴파일된 바이너리 파일을 다운받아서 사용하니 마음이 편해졌다ㅎㅎ
다운받고 압축을 풀면 이런 파일 구조가 보인다.
우리에게 필요한 것은 컴파일된 lib 라이브러리 파일과, 이 파일 속 코드가 사용하는데 필요한 헤더 파일 2가지이다.
헤더파일의 경우, include 폴더에 있다.
GLFW 폴더 내에 들어있으며 나는 include/GLFW 폴더와 함께 위의 두 헤더파일을 모두 소스코드 디렉토리에 옮겨주었다.
우선 include 폴더가 필요하다고만 생각하자.
다음으로 라이브러리 파일은 나머지 리스트에서 자신에게 맞는 것을 고르면 된다.
나는 비주얼 스튜디오 2019 버전을 사용하고 있기 때문에 lib-vc2019 폴더에서 찾았다.
폴더 내용에는 이렇게 다양한 라이브러리 파일이 있다.
여기에서 glfw3.lib 파일만 가져와 사용하면 된다.
그럼 이렇게 압축을 풀고 가져온 파일들은 어디에 두어야 할까?
새로운 프로젝트를 만들어 빌드해두거나 나는 교수님이 제공해주신 예제 코드를 가져왔다.
예제 코드 압축을 풀면 이렇게 파일들이 들어있는데, 여기에 기존 압축파일에서 가져온 include 폴더를 그대로 붙여넣고, lib 폴더를 만든 뒤, 그 안에 vc-2019 에서 가져온 라이브러리 파일을 넣으면 된다.
GLAD 설치
다음으로 GLAD를 설치한다.
GLAD (OpenGL Loading Library) 의 약자로, OpenGL의 기본 라이브러리를 로딩해주는 라이브러리이다.
(GL을 사용하는데 필요한 함수들의 위치를 가져와 함수 포인터에 저장한다.)
이 사이트에 들어가서 다운받을 수 있다.
설정은 이렇게 하였다.
학교 수업이 3.3 버전 기준으로 진행되어 GL 버전은 3.3 으로 하였다.
Extension은 별도로 추가하지 않았고 바로 오른쪽 아래의 Generate 버튼을 클릭하면 GLAD 파일을 받을 수 있다.
그 안에는 이렇게 include, src 폴더가 있다.
include 폴더는 낯이 익다.
그렇다. GLFW에서 필요했던 것처럼 GLAD 헤더 파일이 이곳에 들어있다.
저 include 파일도 그대로 복사해서 기존 소스코드의 include 폴더와 합쳐준다.
이렇게 보이면 된다.
그리고 src 폴더에 가면 이렇게 glad.c 라는 파일이 있다.
프로젝트 구조에 따라 src 디렉토리에 소스코드가 모여있는 구조라면 이 디렉토리를 그대로 가져가 합치면 되고 아니라면 glad.c만 가져오면 된다.
중요한 것은 src 디렉토리의 여부가 아니라 cpp 메인함수가 있는 소스코드와 같은 공간에 있는 것이 중요하다.
학교에서 제공하는 파일에도 glad.c가 있는데 이 glad.c는 내가 다운받은 glad.c 와 달라서 (더 코드가 많다! 아마 Extension이 여러개 추가된 듯?) 일부 코드에서 에러가 나는 바람에 내가 다운받은 glad.c로 교체해주었다.
이때 main 함수가 있는 cpp 와 같은 공간에 두지 않으면 계속 기존 glad.c로 컴파일을 시도해서 에러가 발생하니 주의하자.
비주얼 스튜디오 세팅
이제 가져온 헤더파일과 라이브러리 파일을 프로젝트에 등록해주자.
이때 주의할 점은 폴더명에 공백문자가 있으면 안된다.
혹시 모르니 경로에 한글이 없도록 하는 것도 잊지 말자.
이것 때문에 라이브러리 경로 등록하고 빌드할 때 헤더파일을 못 찾아서 에러가 계속 났다.
솔루션을 비주얼 스튜디오로 열면 아래와 같이 보인다.
OpenGL1 glfw 가 솔루션 이름이다.
여기에 대고 마우스 우클릭을 하자.
맨 아래에 속성을 클릭
우측 VC++ 디렉터리를 선택한다.
우리가 설정할 건 외부 include 디렉터리와 라이브러리 디렉터리 이다.
오른쪽 화살표를 눌러 편집을 클릭하자.
경로를 복사할 폴더를 클릭하고, ctrl + shfit + c 를 누르면 폴더의 경로가 복사된다.
이걸 편집창에 붙여주고 큰따옴표는 빼주면된다.
외부 include 디렉터리에는 include 폴더의 경로를 넣어주고, 외부 라이브러리 디렉터리에는 lib 폴더의 경로를 넣어주면 된다.
실행을 해보면 빌드가 잘 되는 것을 볼 수 있다.
'CS > HCI 윈도우즈프로그래밍' 카테고리의 다른 글
[OpenGL] 6. Shader (2) - VAO (1) | 2024.04.07 |
---|---|
[OpenGL] 5. Shader (1) - Shader, VBO, Shader Program (0) | 2024.04.05 |
[OpenGL] 4. Graphics Pipeline (1) | 2024.04.04 |
[OpenGL] 3. GLFW 기본 예제 뜯어보기 (0) | 2024.04.04 |
[OpenGL] 2. Open GL 개념 (0) | 2024.04.03 |