Windows에서 c/c++ 프로그램을 개발해서 실행 파일로 빌드(컴파일 + 링크)하려고 할 때, Linux의 gcc처럼 커맨드 명령을 사용할 수도 있지만 통합 개발 환경(IDE) 툴을 사용하면 더 편하게 작업할 수 있습니다. 이 글에서는 Windows에서 통합 개발 환경(IDE) 툴 visual studio community를 설치하는 방법을 설명하겠습니다.
Visual Studio Community 다운로드 & 설치
다음 사이트에서 무료 라이센스로 제공하는 Community의 최신 버전을 다운로드합니다.


참고로 과거 버전이 필요하다면 아래 사이트에서 다운로드 할 수 있습니다.


다음과 같이 VisualStdioSetup.exe 파일이 다운로드되면 파일을 실행합니다.

다음은 설치 실행을 준비하고 있는 화면입니다. 준비가 끝나면 자동으로 다음 화면으로 진행합니다.

다음은 설치 중 디바이스 변경 허용을 요구 하는 화면입니다. [예] 버튼을 눌러 다음 화면으로 진행합니다.

다음은 설치 전의 조건 동의하는 화면입니다. [계속(O)] 버튼을 눌러 다음 화면으로 진행합니다.

설치 관리자 다운로드 진행 화면이 표시됩니다. 준비가 끝나면 자동으로 다음 화면으로 진행합니다.

개발 환경 선택화면이 표시됩니다. Windows에서 c/c++ 프로그램 개발을 위해서 다음과 같이 [C++를 사용한 데스크톱 개발] 을 선택합니다. 오른쪽 창에는 선택한 개발 환경의 기본 선택사항이 표시됩니다. 내용 변경없이 기본 선택사항으로 [설치] 버튼을 눌러 다음 화면으로 진행합니다.

Visual Studio Installer 진행 화면이 표시됩니다. 설치가 끝나면 자동으로 다음 화면으로 진행합니다.

설치 완료 메시지가 표시됩니다. [OK] 버튼을 눌러 다음으로 진행합니다.

설치가 완료되면 “설치됨” 화면에 Visual Stdio Community 2022 정보가 표시됩니다. [시작(L)] 버튼을 눌러 C++통합 개발 환경(IDE)를 시작합니다.

Visual Studio 로그인 화면이 표시됩니다. 이 글에서는 “-디바이스 간의 설정 동기화” 등의 기능을 사용하지 않으므로 [나중에 로그인] 링크를 눌러 다음 화면으로 진행합니다.

통합 개발 환경(IDE)에 대한 색 테마 등의 선택화면이 표시됩니다. 이 글에서는 [일반] , [시스템 설정 사용] 을 선택했습니다. [Visual Studio 시작(S)] 버튼을 눌러 다음 화면으로 진행합니다.

Visual Studio 준비 화면이 표시됩니다. 준비가 끝나면 자동으로 다음 화면으로 진행합니다.

빈 솔루션 작성하기
Visual Studio 2022 시작 화면에서 [새 프로젝트 만들기(N)]을 선택합니다.

다음 화면과 같이 템플릿 검색에 “빈”을 입력하여 빈 프로젝트, 빈 솔루션을 검색합니다.

C:\드라이브에 mysol 폴더를 작성해서 빈 mysol.sln을 작성하려면 다음과 같이 입력하고 [만들기(C)]버튼을 누릅니다. ( 작성 예 C:\mysol\mysol.sln ) 이름은 자유롭게 지정할 수 있습니다.

다음과 같이 빈 솔루션이 작성되었습니다.

작성된 폴더 구성은 다음과 같이 C:\mysol\mysol.sln 파일이 작성되었습니다.

참고로 C:\mysol\testsol.sln 같이 폴더 명과 솔루션 명을 다르게 하고 싶다면 빈 솔루션 작성 후, 솔루션을 선택 오른쪽 마우스 클릭으로 콘텍스트 메뉴를 표시하여 [이름 바꾸기(M)]를 사용하여 변경합니다.

이름 바꾸기를 사용하여 변경한 결과, 다음과 같이 파일 명이 변경되었음을 확인할 수 있습니다.

빈 프로젝트 작성하기
c 또는 c++프로그램을 작성하기 위한 빈 프로젝트를 작성합니다. 다음과 같이 [파일] – [추가] – [새 프로젝트(N)]을 눌러 [새 프로젝트 추가] 화면을 표시합니다.

[새 프로젝트 추가] 화면에서 [빈 프로젝트]를 선택합니다. 참고로 [콘솔 앱]을 선택하면 “Hello World”를 표시하는 c++코드가 샘플로 제공됩니다. c코드를 작성할 경우 [빈 프로젝트]가 편리합니다.

위치는 빈 솔루션 작성 폴더 위치를 지정하고 프로젝트 이름에 testprj를 입력한 후 [만들기(C)] 버튼을 누릅니다. (작성 예시 C:\mysol\testprj\testprj.vcxproj) 이름은 자유롭게 지정할 수 있습니다.

다음과 같이 빈 프로젝트가 작성되었습니다.

위에서 작성된 신규 솔루션과 신규 프로젝트의 폴더 구성은 다음과 같습니다.
C:\mysol>tree . /F
폴더 PATH의 목록입니다.
볼륨 일련 번호가 000000DF 6E17:7C4F입니다.
C:\MYSOL
│ testsol.sln
└─testprj
testprj.vcxproj
testprj.vcxproj.filters
testprj.vcxproj.user
샘플 프로그램 작성
testprj프로젝트에 Hello World를 출력하는 sample.c를 작성합니다.
testprj 프로젝트에서 오른쪽 마우스 클릭으로 콘텍스트 메뉴를 표시합니다. [추가(D)] – [새 항목(W)]를 선택합니다.

다음과 같이 새 항목 추가 다이얼로그 화면에서 C++파일(.cpp)를 선택하고 이름에 미리 설정된 소스.cpp를 sample.c로 변경합니다. 참고로 확장자 c는 c프로그램, 확장자 cpp는 c++프로그램을 의미합니다.

다음과 같이 소스 파일에 sample.c가 추가되면서 오른쪽 창에 sample.c 코드 편집 창이 표시됩니다.

sample.c 코드 창에 다음과 같이 Hello World를 표준 출력하는 소스를 입력하고 저장합니다.
#include <stdio.h>
int main(int argc, char* argv[]) {
printf("Hello World\n\r");
return 0;
}
C프로그램의 시작을 알리는 main함수에 대해서는 [C언어 실행파일 작성에서 main함수의 역할VS C/C++] 글을 참조 하십시오
메인 메뉴의 [빌드(B)]-[testprj 빌드(U)]를 선택해 빌드(컴파일 + 링크)를 실행합니다.

통합 개발 환경(IDE)의 출력 영역에 다음과 같이 빌드 성공의 메시지가 표시됩니다.
빌드 시작...
1>------ 빌드 시작: 프로젝트: testprj, 구성: Debug x64 ------
1>sample.c
1>testprj.vcxproj -> C:\mysol\x64\Debug\testprj.exe
========== 빌드: 성공 1, 실패 0, 최신 0, 생략 0 ==========
빌드(컴파일 + 링크)에 의해 생성된 중간 파일과 실행 파일의 위치는 다음과 같습니다.
C:\mysol>tree . /F
폴더 PATH의 목록입니다.
볼륨 일련 번호가 00000015 6E17:7C4F입니다.
C:\MYSOL
│ testsol.sln
├─testprj
│ │ sample.c
│ │ testprj.vcxproj
│ │ testprj.vcxproj.filters
│ │ testprj.vcxproj.user
│ └─x64
│ └─Debug
│ │ sample.obj
│ │ ...이해 생략...
│ └─testprj.tlog
│ CL.command.1.tlog
│ ...이하 생략 ...
└─x64
└─Debug
testprj.exe
testprj.pdb
참고로 sample.c를 컴파일되어 sample.obj가 생성됩니다. sample.obj와 표준 라이브러리는 링크되어 메모리에 로드될 수 있는 형태로 참조되고 실행 파일(testprj.exe)로 생성됩니다.
실행 파일 확인하기
명령 프롬프트에서 다음과 같이 C:\mysol\x64\Debug\testprj.exe를 실행하면 Hello World가 표준 출력되고 리턴 값도 0인 것을 확인할 수 있습니다.
