Scientia Conditorium

[OpenGL 001] Visual Studio 2022 with OpenGL,GLFW 본문

프로그래밍/컴퓨터 그래픽스

[OpenGL 001] Visual Studio 2022 with OpenGL,GLFW

크썸 2021. 12. 17. 03:59

※ 본 글은 Window10 + Visual Studio 2022 버전에서 작성했지만 Window11에서도 동일합니다.

 

본격적인 컴퓨터 그래픽스에 앞서서 환경 설정 셋팅을 하도록 하겠습니다.

 

Visual Studio installer에서 'C++를 사용한 데스크톱 개발'을 설치하자

비쥬얼 스튜디오 설치 방법은 생략하도록 하겠습니다.

비쥬얼 스튜디오 2022를 기준으로 '새 프로젝트 만들기'를 선택하고 콘솔앱(Console App) 프로젝트를 실행합니다.

 

C++, Console App을 선택

 

프로젝트 이름은 기본값(default)으로 콘솔어플리케이션(ConsoleApplication1)이라고 되어있습니다.

원하시는 프로젝트명을 지어주시면 되지만, 여기서는 OpenGL이라고 하도록 하겠습니다.

아래쪽 경로 또한 본인이 원하시는 곳을 설정해주시면 되지만, 기본값으로 진행하도록 하겠습니다.

여기까지 프로젝트를 생성한 후, 잠시 창을 내려주거나 비쥬얼 스튜디오는 꺼주셔도 됩니다.

프로젝트 생성 경로를 기본값으로 설정하셨다면,

C:\Users\admin\source\repos 프로젝트명 이름의 폴더가 생성된 것을 확인할 수 있습니다.

 

이제 OpenGL 라이브러리를 다운받을 차례입니다.

https://glfw.org/download.html 

 

Download

GLFW source code and binary distribution download links.

www.glfw.org

위 사이트에 접속하셔서 원하시는 바이너리 파일을 받으시면 되겠습니다.

learnopengl 사이트에 따르면 64비트 버전은 오류를 일으킨 적이 많다고 합니다.

그러나 여기서는 어떤 오류가 있는지도 확인할 겸, 64비트로 진행하겠습니다.

 

64-bit Windows binaries를 클릭

21년 12월 17일 기준으로 'glfw-3.3.6.bin.WIN64' zip 파일이 받아졌습니다.

압축을 풀고 내용을 보면 여러가지가 있는데 우리가 필요한 폴더는 'include'와 'lib-vc2022' 입니다.

이 2개의 폴더는 복사해서 아래 경로에 붙여넣도록 합니다.

C:\Users\admin\source\repos\OpenGL\OpenGL

편의를 위해 'lib-vc2022' 안에 있는 파일들은 꺼내서 OpenGL.cpp와 같은 위치에 있도록 합니다.

 

위와 같이 파일들이 들어있으면 준비완료

이제 다시 비쥬얼 스튜디오를 실행해주도록 합니다.

OpenGL.vcxproj를 더블 클릭 하시거나, 상위 폴더에 있는 OpenGL.sln 솔루션 파일을 더블 클릭 하시면 됩니다.

OpenGL.cpp 파일에 "Hello World!\n" 출력하는 기본 코드와 여러 주석들이 있는데 전부 다 지워줍니다.

그리고 아래의 코드를 입력해주도록 합니다.

 

#include "include/GLFW/glfw3.h"

int main()
{
	GLFWwindow* window;

	if (!glfwInit())
	{
		return -1;
	}

	window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
	if (!window)
	{
		glfwTerminate();
		return -1;
	}

	glfwMakeContextCurrent(window);

	while (!glfwWindowShouldClose(window))
	{
		glClear(GL_COLOR_BUFFER_BIT);
		glBegin(GL_TRIANGLES);
		glColor3f(1.0f, 0.0f, 0.0f);
		glVertex2f(-0.5f, 0.0f);
		glVertex2f(0.0f, 0.5f);
		glVertex2f(0.5f, 0.0f);
		glEnd();

		glfwSwapBuffers(window);
		glfwPollEvents();
	}

	glfwTerminate();
	return 0;
}

 

코드 작성 완료 후 F5 버튼으로 실행해보면 빌드에러가 나는 것을 볼 수 있습니다.

대표적으로 LNK2019 unresolved external symbol __imp_glClear referenced in function main 같은 것 입니다.

LNK2019는 프로그램 실행할 때, 함수의 위치를 찾지 못해서 발생한 것으로 라이브러리 연결이 제대로 되지 않아서 발생합니다.

자, 이제 상단의 프로젝트(project) -> 프로젝트 설정(OpenGL Properties)을 클릭합니다.

링커(Linker) -> 입력(Input) -> 추가 종속성(Additional Dependencies) -> edit를 눌러준 다음 나오는 창에서

'glfw3.lib'와 'opengl32.lib'를 입력해주도록 합니다.

 

링커, 입력, 추가종속성에서 glfw3lib와 opengl32lib를 추가

 

자, 이제 다시 F5 버튼을 눌러서 프로그램을 시작하면 Hello World라는 새로운 창에서 빨간색 삼각형을 볼 수 있습니다.

여기까지 완료하셨다면 OpenGL 기본 개발 환경 셋팅이 구성된 것입니다.