💾
EC
  • Introduction
  • EC Course
    • Syllabus
    • Preparation for EC
    • Tutorial
      • Tutorial: arduino-stm32
        • Tutorial: arduino-stm32 Installation
        • Tutorial: arduino-stm32 Part1
        • Tutorial: arduino-stm32 Part2
      • Tutorial: MDK uVision
        • Tutorial: Installing MDK uVision
        • Tutorial: Create a Project with uVision
        • Tutorial: Adding library header in uVision
        • Tutorial: Re-using Project Configuration
        • Debugging in uVision
      • Tutorial: PlatformIO in CLion
      • Tutorial: PlatformIO in VSCode
      • Tutorial: Repository Management
      • Tutorial: Managing library header files
      • Tutorial: PinName Configuration
      • Tutorial: Bitwise Macro
      • Tutorial: Custom initialization
      • Tutorial: Documentation
      • Tutorial: Creating Application API
      • Tutorial: 7-Segment Display
      • Tutorial: DC motor driver connection
      • Tutorial: USART with TeraTerm
      • Tutorial: Finite State Machine programming
      • Tutorial: Bluetooth
      • Tutorial: Zigbee with Nucleo board
    • LAB
      • LAB Report Template
      • LAB: Smart mini-fan with STM32-duino
      • LAB: Portable Fan with mbed
      • LAB: GPIO Digital InOut
      • LAB: GPIO Digital InOut 7-segment
      • LAB: EXTI & SysTick
      • LAB: Timer & PWM
      • LAB: Stepper Motor
      • LAB: Input Capture - Ultrasonic
      • LAB: USART - LED, Bluetooth
      • LAB: ADC - IR reflective sensor
      • LAB: Line Tracing RC Car
    • Sample code
      • Code Templates
    • Hardware
      • Nucleo-F411RE
      • LAB Hardware
        • Electronic Chips
        • HUINS Embedded Kit
    • Projects
      • Line Tracing Car Project
      • Design Project
        • Past Projects
      • Project Grading Criteria
    • Study Resource for MCU
      • Hexa-Decimal Table
      • Bitwise Op for Register
      • System Clock
      • Timer
      • USART
      • ADC
  • STM32 M4 Programming
    • Documentation
      • C++ API Docs
    • Firmware Library
      • PinName Configuration
      • GPIO Digital
      • RCC
      • EXTI_SysTick
      • TIMER
      • USART
    • Troubleshooting
    • mbed for STM32
      • Tutorial: mbed-Part 1
      • Tutorial: mbed - Part 2
      • Tutorial: mbed - Part 3
      • Using mbed API on uVision
    • mbed OS
  • Other Programming
    • Arduino
    • Socket Programming
      • Window Socket Programming
      • Arduino WiFi
    • Cube-MX
    • Github
    • Markdown
      • Example: API documentation
    • MATLAB
  • C Programming
    • C-Programming Lessons
      • Installing Visual Studio Community
        • Visual Studio Community 2022
      • Installing VS Code(Mac/Linux)
      • Creating Header Lib
      • Pointer
      • Array
      • 2D Array
      • Structure
      • Dynamic Alloc
      • Bitwise Operation
  • Numerical Programming
    • Syllabus
    • Preparation for NP
    • Math Review
    • Tutorial
      • TA Session Video
      • Tutorial: NP Library Header Files
      • Tutorial - Sine Taylor
      • Tutorial: Passing a Function, Function callback
      • Tutorial: Nonlinear solver
      • Tutorial: Differentiation
      • Tutorial: Integration
      • Tutorial: Matrix Structure
      • Tutorial: Eigenvalue problem
      • Tutorial: ODE-IVP
      • Tutorial: Curve Fitting
      • Tutorial: Create Github Repos of NP lib
      • Tutorial: Version Control in Github
      • Tutorial: Documentation with Markdown
      • Exercise: Version Control and Documentation
    • Example: MATLAB
    • Example: NP Library
    • Assignment
      • Assignment Factorial and Power
      • Assignment: Version Control and Documentation
    • Problem Bank
Powered by GitBook
On this page
  • How to Install
  • Visual Studio 사용하기
  • Visual Studio 사용하기 2
  • Visual Studio 활용하기: 디버깅
  • 한 줄씩 디버깅하기
  • 중단점(Break Point) 활용하여 디버깅하기

Was this helpful?

  1. C Programming
  2. C-Programming Lessons
  3. Installing Visual Studio Community

Visual Studio Community 2022

PreviousInstalling Visual Studio CommunityNextInstalling VS Code(Mac/Linux)

Last updated 1 year ago

Was this helpful?

How to Install

Microsoft 계정을 통해, 무료로 다운로드 할 수 있습니다.

\

image

"Visual Studio 다운로드" 버튼을 누른 뒤, Visual Studio Community 2022 를 눌러 설치를 시작합니다.

\

C++를 사용한 데스크톱 개발 항목을 선택한 후, 설치 버튼을 누릅니다.

\

\

Visual Studio는 Microsoft 계정과 연동되어 있기 때문에, 로그인 화면이 나옵니다. 본인의 계정으로 로그인합니다. 당장 진행하지 않고 건너뛰어도 무방합니다.

\

자신이 원하는 테마를 설정합니다. 테마 변경 또한 언제든 다시 할 수 있습니다.

\

Visual Studio 사용하기

새 프로젝트 만들기 를 클릭합니다.

\

기본값으로 설정된 빈 프로젝트 를 선택한 후 다음 버튼을 누릅니다.

\

프로젝트란? 작업하고 있는 main 코드를 실행시키기 위해 필요한 여러 개의 소스 파일과 헤더 파일을 하나로 묶어 놓은 집합체를 의미합니다.

솔루션이란? 여러 개의 프로젝트가 모인 것으로, 프로젝트의 상위 폴더 개념으로 이해할 수 있습니다. 프로젝트 생성 과정에서 프로젝트와 동일한 이름으로 자동 생성되는데, 임의로 이름을 변경할 수도 있습니다. 이미 생성된 솔루션 안에 새로운 프로젝트를 추가하는 것 또한 가능합니다.

\

프로젝트 생성 시, 우측에 솔루션 탐색기 가 보입니다. 위 사진과 같이, 소스 파일에서 오른쪽 마우스 클릭을 통해 새 항목 을 추가합니다.

\

아래 소스코드를 입력한 후, 실행합니다 (디버그 -> 디버그하지 않고 시작) 또는 (CTRL + F5)

#include <stdio.h>

int main()
{
    printf("Hello, Handong!\n");

    return 0;

}

\

기존 항목을 클릭하여, 외부의 소스 파일을 프로젝트에 추가하여 실행시키는 것도 가능합니다.

정상적으로 따라왔다면, 위와 같은 결과가 출력됨을 확인할 수 있습니다.

Visual Studio 사용하기 2

위에서, 단순 문장을 출력하는 코드를 작성했습니다. 다음으로, 두 숫자를 입력받아 합을 출력하는 코드를 작성해 봅시다.

위에서 생성한 프로젝트 안에, C_visualStudio_exercise2.c 코드를 생성하고, 실행합니다.

\

#include <stdio.h>

int main() {
	int a=0, b=0;
	int sum=0;

	printf("Enter two numbers: ");
	scanf("%d %d", &a, &b);
	sum = a + b;
	printf("%d + %d = %d\n", a, b, sum);
	printf("Thank you!");
	
	return 0;

}

\

그런데, build를 하면 scanf 에서 오류가 나는 것을 확인할 수 있습니다. 노란색 경고의 경우 단순히 버려지는 값이 있음을 알리기 위해 인텔리센스가 안내하는 내용입니다. 원하는 작업대로 정상 동작 한다면 무시해도 됩니다.

scanf 오류 해결을 위해, 해당 프로젝트에 우클릭, 속성 버튼을 클릭합니다.

속성의 C/C++ -> 전처리기 에 들어가서, 전처리기 정의 부분에 _CRT_SECURE_NO_WARNINGS; 를 추가합니다.

이후 적용 -> 확인을 통해 창을 닫습니다.

\

이후 다시 빌드를 하면, scanf 오류가 해결되었음을 확인할 수 있습니다. 그런데, 또 다른 main이 정의되었다는 에러가 발생했습니다.

같은 프로젝트 내에서 C_visualStudio_exercise.c, C_visualStudio_exercise2.c 두 개의 소스파일을 빌드하는 과정에서 main이 중복되기 때문입니다.

위와 같이 기존 main 함수의 이름을 임의로 바꾸어 주거나, 기존 소스 파일을 프로젝트에서 제거할 경우 오류 없이 정상적으로 C_visualStudio_exercise2.c가 빌드됩니다.

위와 같이 속성->빌드에서 제외 항목을 바꿔주는 것도 하나의 방법입니다.

\

Visual Studio 활용하기: 디버깅

디버깅은 코드의 에러를 찾는 데 매우 효과적인 방법입니다.

한 줄씩 디버깅하기

\

위와 같이, 단축키 F11 을 누르면 위에서부터 한 줄씩 코드를 실행시킵니다. F11을 누를 때 마다 좌측 화살표가 한 줄씩 내려가며 코드가 실행됩니다. 이를 통해 프로그램의 진행 상황을 파악할 수 있고, 에러가 발생한 경우 어느 위치에서 에러가 발생하는지를 알 수 있습니다.

\

중단점(Break Point) 활용하여 디버깅하기

단축키 F9 단축키를 통해 중단점을 설정할 수 있습니다.

위 사진은 9번째 줄에 중단점을 설정한 상태입니다. 이 상태에서 F5를 눌러 디버깅을 시작하면, 설정한 중단점부터 디버깅을 시작합니다.

디버깅이 시작된 이후에는, F11을 통해 한 줄씩 코드를 실행시킬 수 있습니다.

image
image

설치가 끝날 때 까지 기다립니다. 네트워크 환경에 따라 설치 시간이 오래 걸릴 수 있습니다. 을 통해, 보다 빠르게 설치할 수 있습니다.

image
image
image
image
image
image

image
image
image
image

image
image
image

Visual Studio 디버깅에 관해 보다 상세한 설명이 필요하다면, 를 참조하시기 바랍니다.

DNS 변경
Source Code
Link
Click here to Download