개인 블로그에서 21.03.11에 작성된 글입니다. 참고 바랍니다.
https://kyoungwhankim.github.io/blog/opengl_start/
Visual Studio에서 OpenGL 작업 환경을 구축해보자.
Windows 환경에서 Visual Studio를 사용하여 OpenGL 함수들을 사용하기 위해선 준비 작업들이 있습니다.
우선, Visual Studio의 새 C++ 빈 프로젝트를 생성합니다. 그리고 main 함수가 위치할 cpp 파일을 생성합니다.
다음으로, GLEW와 GLFW를 다운받습니다. GLFW GLEW
GLFW와 GLEW 모두 소스 파일을 받아 직접 빌드하거나, 자신의 운영 체제에 맞는 바이너리 파일을 받아 바로 사용할 수 있습니다. Windows의 경우 둘 다 pre-compile된 바이너리 파일 모음(라이브러리 파일, 헤더 파일 등)들이 있기 때문에 바이너리 파일들을 다운 받으시는 것을 추천드립니다.
GLFW 다운로드
다운로드를 받으셨다면 라이브러리와 헤더 파일들을 사용하기 위해 Visual Studio 솔루션 디렉토리 기준 하위 폴더에 다운로드 받으신 파일들을 보관합니다. 파일들을 관리하는 방법은 개인에 따라 차이가 있기 때문에 저의 방법을 소개해드리는 것으로 설명을 대신하겠습니다.
Visual Studio 프로젝트는 솔루션 디렉토리(.sln 파일이 있는 디렉토리) 아래에 파일들을 관리하는 것을 추천합니다. 저의 경우 솔루션 디렉토리에 Dependencies 폴더를 생성하여 GLFW와 GLEW 파일들을 관리합니다. GLFW 3.3.3, GLEW 2.1.0 기준 다음과 같이 디렉토리를 구성합니다.
저는 Windows 64bit 환경에서 작업을 하지만 프로젝트는 32bit 기준으로 진행하겠습니다. 그리고 동적 라이브러리보다는 정적 라이브러리를 사용하도록 하겠습니다. GLEW는 다운로드 받으신 파일 구성 그대로 사용하시면 됩니다. doc과 LICENSE.txt 파일은 딱히 필요하진 않으나 그냥 두도록 합니다. bin/Release와 lib/Release 아래에도 Win32 외에 x64 폴더가 있을텐데 프로젝트를 64bit 기반으로 진행하고자 한다면 x64 폴더 아래 라이브러리 파일들이 필요합니다.
GLFW의 경우 다운로드 받으면 Visuall Studio 버전에 따라 폴더들이 있을 것입니다. 저는 Visual Studio 2019로 작업하고 있기에 lib-vc2019 폴더만 들고와서 사용합니다. 그 외 헤더파일들을 가지고 옵니다.
이제 Visual Studio에서 위 디렉토리들을 참조할 수 있도록 설정해야합니다. 프로젝트 속성 페이지(프로젝트->속성)를 열고 다음 설명대로 진행합니다.
C/C++ 메뉴 아래 일반으로 들어갑니다. 최상단의 추가 포함 디렉터리를 편집하는데, 헤더 파일들이 포함되어 있는 디렉터리들을 추가합니다.
$(SolutionDir)Dependencies₩GLFW₩include
$(SolutionDir)Dependencies₩GLEW₩include
다음으로 링커 메뉴 아래 일반으로 들어갑니다. 추가 라이브러리 디렉터리를 편집하는데, 라이브러리 파일들이 포함되어 있는 디렉터리들을 추가합니다.
$(SolutionDir)Dependencies₩GLFW₩lib-vc2019
$(SolutionDir)Dependencies₩GLEW₩lib₩Release₩Win32
그리고 마지막으로 링커 메뉴 아래 입력으로 들어갑니다. 추가 종속성을 편집하는데, 다음을 추가합니다.
_glfw3.lib
opengl32.lib
glew32s.lib
glew32s.lib는 정적라이브러리이고 이를 사용하기 위해선 전처리기 정의를 추가해야합니다. C/C++ 메뉴 아래 전처리기로 들어가 전처리기 정의를 추가합니다.
GLEW_STATIC
참고로, 동적 라이브러리를 사용하시고 싶으시다면 Dependencies₩GLFW₩lib-vc2019에 있는 glfw3.dll 파일과 Dependencies₩GLEW₩bin₩Release₩Win32에 있는 glew32.dll 파일을 프로젝트 폴더(보통 솔루션 파일과 같은 이름으로 솔루션 디렉토리에 생성됩니다)로 복사, 붙여넣기 해주시면 됩니다. 그리고 위 3번에서 추가 종속성을 편집할 때 glew32s.lib가 아닌 glew32.lib를 추가해주시고, 4번 과정을 생략하셔야 합니다.
이제 OpenGL을 사용할 수 있는 환경이 구축되었습니다. 주의할 점은 항상 GLEW의 헤더파일을 가장 우선적으로 include 하십시오. GLFW와 GLEW를 이용하여 OpenGL context를 생성하고 코드를 작성하는 법은 다음 글에서 다루도록 하겠습니다.
#include <GL/glew.h>
#include <GLFW/glfw3.h>