2025. 2. 15. 19:24ㆍProgramming Language/C++
1. IDE
Windows에서는 Microsoft에서 만든 Visual Studio를 사용하고 디폴트 컴파일러로 MSVC++를 사용한다.
MacOS에서는 Apple에서 만든 Xcode로 디폴트 컴파일러로는 Clang이란것을 사용한다.
특정 운영체제에 국한되지 않은 Cross Platform으로 나온 Jetbrains에서 만든 Clion이란 것이 있다.
또한 CUI를 사용하는 Cross Platform으로 사용되는 Vi/Vim이라는 프로그램이 있다.
이는 IDE는 아니지만 많은 사용자들이 사용하는 프로그램이기에 넣어봤다고 함.
동일하게 IDE는 아니지만 C++ 플러그인을 사용하면 사용할 수 있는 Microsoft에서 나온 Visual Studio Code가 있다.
이중 Visual Studio가 제일 점유율이 높고 많이 사용된다.
2. 프로젝트 생성하기
Visual Studio를 실행하고
새 프로젝트 만들기를 클릭해주자.
언어를 C++로 선택해주고
플랫폼을 Windows로 선택해주자.
그리고 나오는 리스트에서 콘솔 앱을 선택해주자.
새 프로젝트 구성에서 적절한 프로젝트 명을 설정하고 솔루션 이름은 Cpp로 설정해주자.
이러고 만들기를 눌러주면
이렇게 프로젝트가 하나 생성되어 열린다.
프로젝트를 생성하면 아래와 같이 프로젝트에 대한 간략한 메뉴얼이 주석으로 제공된다.
순서대로 보자면
2-1. 프로그램 실행
Visual Studio 내부에서 Ctrl + f5키 혹은 디버그 > 디버깅 하지 않고 시작 메뉴를 누르면
프로그램이 실행된다.
Ctrl + f5 를 눌러보면
이렇게 CMD 창이 뜨면서 해당 프로그램의 결과값을 출력해준다.
그리고 프로젝트명 > 솔루션명 > x64 > Debug로 가면 아래와 같이 exe파일이 생성된다.
이를 실행해보면 깜빡하면서 어떤 창이 떴다가 바로 사라진다.
이건 프로그램을 한번 실행한거고 프로그램 내부에는 출력만 하고 종료되는 로직이기 때문에 출력만하고 바로 종료하는 것이다.
여기에 아직은 잘 모르지만 사용자의 입력을 받는 std의 cin을 사용해서 입력을 요청하는 코드를 추가하고
저장한 후에 다시 Ctrl + f5를 눌러준 후에 cmd창이 열리는 것을 보면
입력을 요구하는 커서가 뜨게 되는데 이걸 종료하고 위와 같은 경로의 exe파일을 실행시켜보면
이렇게 종료되지 않고 입력을 요구하는 모습을 볼 수 있다.
이로써 단순하게 Ctrl + f5를 누르면 프로그램 실행과 동시에 exe파일을 생성해서 저장한다는 것을 알 수 있다.
또한 프로그램이 프로젝트명 > 솔루션명 > x64 > Debug 경로에 위치하는 이유는 위쪽에 Debug x64로 실행하기로 설정되어 있기 떄문이다.
개발 할때는 이 Debug로 사용을 많이 하게 되는데
Debug말고 Release는 실제 운영에 사용되는 릴리스 버전으로 실행시키는 것으로 프로그램의 최적화를 시키게 되면서 프로그램 내부에서 필요없는 코드는 컴파일러가 임의로 담지 않고 실행하는 경우가 있기 때문이다.
그렇기에 Debug로 개발하고 Release로 나중에 운영에 배포할때는 빌드해서 배표해야한다.
2-2. 프로그램 디버그
프로그램 내부에서 f5를 누르면 cmd창이 뜨는 것을 볼 수 있는데 이게 Ctrl + f5랑 다른 점은 지금 그냥 실행시킬때랑 똑같아 보이는데
코드 옆쪽에 마우스를 올려보면 하얀 점이 뜨는 것을 볼 수 있는데
이 점을 클릭해보면 빨간 점으로 변경되는 것을 볼 수 있는데
이건 중단점이라고 해서 디버깅 했을때 어디서 멈춰서 디버깅을 돌려보겠다고 설정하는 부분이다.
그래서 f5를 눌러서 프로그램을 다시 디버깅을 돌려보면
Visual Studio가 디버깅 모드로 진입되어 변경된 것을 볼 수 있다.
여기서 메뉴 중 디버그를 눌러보면
f10을 눌러보면 화살표가 아래로 내려가면서 지나간 코드가 실행되는 것을 볼 수 있다.
2-3. 솔루션 탐색기
왼쪽에 솔루션 탐색기라는 창이 있는 것을 확인할 수 있다.
여기서 솔루션이라는 것은 여러개의 프로젝트를 담을 수 있는 그릇이라고 생각하면 된다.
더 큰 프로젝트로 나아가면 솔루션 하나에 여러개의 프로젝트가 들어가는 경우가 흔하게 발생한다.
여러개의 프로젝트를 관리하기 위해서 솔루션이라는 것을 사용한다고 보면 될듯하다.
이 솔루션 탐색기의 프로젝트를 오른쪽 클릭하고
파일 탐색기에서 폴더 열기를 누르면 해당 프로젝트가 있는 폴더가 탐색기로 열리게 된다.
2-4. 팀 탐색기
보기 > 팀 탐색기를 눌러보면
아래와 같이 팀 탐색기 창이 팝업된다.
보면 로컬 Git 리포지토리가 있는것을 보면 소스를 관리하고 팀으로써 소스를 관리할 수 있는 창임을 알 수 있다.
2-5. 출력
먼저 출력을 보기 위해서는 빌드라는 것을 알아야한다.
빌드란 프로젝트에 소스코드를 가지고 결과물을 만들어낼텐데 이를 컴파일이라고 부를 수 있으나 컴파일보다는 상위의 개념이다.
컴파일된 소스들을 묶어서 하나의 실행 파일을 만드는데 이렇게 프로그램의 결과물을 만들기 위한 일련의 작업이 빌드라고 볼 수 있다.
그래서 이 빌드를 하려면 빌드 > [프로젝트명] 작성을 누르거나 Ctrl + B를 눌러서 할 수 있다.
그러면 아래쪽에 그 빌드의 결과가 출력된다.
여기서 실패가 나오는 이유는 프로젝트 내부에 변경된 점이 없기 때문이다.
변경하고 빌드를 하면 아래와 같이 어떤 파일이 빌드 되었고 그 결과물이 어디에 생성되었는지 출력된다.
폴더 위치로 가면 파일이 존재하는 것을 확인할 수 있다.
추가적으로 빌드 > [프로젝트명] 정리를 누르면
이렇게 실행파일을 비워주는 것을 볼 수 있다.
2-6. 오류 목록
오류 목록은 작성한 코드내에 문제가 있는 경우 이 오류 목록에 오류의 내용이 출력되게 된다.
만약 코드에서 main메서드의 중괄호를 지워서 실행해보면
에러가 있어 실행하지 못했다고 출력되고 여기서 아니요를 눌러보면
아래와 같이 오류 목록에 에러가 출력되는 것을 볼 수 있다.
보통은 여기서 검색어를 사용해서 사용하면 되는데 찾을 수 없다면 오류메세지를 보면서 에러를 찾아 수정해야 한다.
보통 이런 오류 메세지는 언어마다 다르나 코드라고 되어 있는 부분을 보면 이 부분은 언어가 다르더라도 동일하니
이 오류 코드를 검색해서 오류를 찾아도 무방하다.
3. Hello World
이번엔 처음부터 솔루션을 생성하는게 아니라 위에서 사용하던 프로젝트에서 솔루션을 추가해보자.
솔루션을 실행할때는 [솔루션 명].sin파일을 눌러서 켜줘도 되고
Visual Studio를 눌러서
오른쪽 시작 부분에 프로젝트 또는 솔루션 열기를 눌러주고 파일 탐색기에서 sin파일을 찾아서 열어줘도 된다
이렇게 열린 솔루션에서 솔루션 탐색기에서 솔루션을 우클릭해보면
추가 > 새프로젝트로 프로젝트를 추가해보도록 하자.
그러면 새 프로젝트 추가 창이 나오는데
이번에는 여기서 빈 프로젝트를 누른 다음에
다음을 눌러서 프로젝트 명을 수정해준 다음에 만들기를 눌러주자
그러면 추가로 프로젝트가 하나 추가되는 것을 볼 수 있다
1-3과 1-4를 비교해보면
Cpp1-3의 경우는 외부 종속성과 소스 파일에 추가적으로 파일이 존재하는 것을 볼 수 있는데 Cpp1-4는 아무런 파일도 없는 것을 볼 수 있다.
이제 아무것도 없는 Cpp1-4의 소스파일을 오른쪽 클릭해서 추가 > 새항목을 눌러주면
새 항목 추가 창이 팝업되고
여기서 C + + 파일을 선택해주고 명칭을 바꿔 추가해주자.
그러면 소스 파일 구역에 cpp파일이 하나 생성된것을 볼 수 있다.
이렇게 생성된 cpp파일을 열어준 다음에 아래와 같이 입력해주자.
여기서 #이 달린 include라는 코드를 볼 수 있는데 이는 전처리 지시자라고 해서 소스코드가 컴파일 되기 바로 이전 단계를 전처리 프리 프로세스라고 하는데 이는 소스코드에 특정한 처리를 해주게 된다.
그래서 #include라는 전처리 지시자는 그 뒤에 붙는 <iostream>에 있는 iostream을 불러오는데 이건 iostream이라는 파일이고 이 파일을 지금 보고 있는 cpp파일 안에 include하겠다는 것인데 이는 iostream에 있는 파일의 내용을 그냥 저 코드가 위치한 곳에 붙여 넣어 주겠다는 의미이다.
만약 우리가 필요하다면 이렇게 특정 파일을 가져와 사용해도 괜찮다.(물론 아래는 파일이 없기 때문에 인식할 수 없어 에러가 발생하는 것이긴함)
여기서 a.txt가 아래와 같이
되어 있다면 include했을때 아래와 같이
붙여 넣어지게 되는 것이라고 이해하면 된다.
그럼 이걸 왜 하는 것이냐 하면 이 iostream이라는 파일 내부에 우리가 쓰게될 도구(기능)들이 존재하기 때문이다.
단순하게 Hello World를 출력해야하는데 이 출력 기능이 iostream이라는 파일의 내부에 정의되어 있기 때문에 사용하는 것이다.
이제 메인 함수를 정의할 것인데
이 main함수는 우리가 만들 프로그램의 엔트리 포인트, 시작이 되는 시작점이라고 생각하면 된다.
아무리 많은 cpp파일을 만들었다고 하더라도 하나의 main함수가 가장 처음으로 시작된다.
이 main함수는 int형을 반환형으로 두고 있고 이 main함수는 정수를 반환하는데 이건 조금 나중에 알아보기로 하자.
그리고 이제 중괄호 내부에 함수가 어떤 기능을 할지 코드를 작성해주면 된다.
우리가 이전에 봤던 코드를 입력해주면 되는데
이 코드에 대한 자세한건 나중에 배우도록하고 단순하게 위에 있는 문자열을 출력해주는 것이라고 생각해주면 된다.
이제 추가로 return 0을 추가해준다.
이는 main함수의 반환 값으로 0을 반환하겠다는 의미이다.
여기서 Ctrl + f5를 눌러서 실행해보면
우리가 만든 Hello, World!가 아닌것을 볼 수 있다.
출력부를 보면 Cpp1-3.cpp가 실행된 것을 볼 수 있는데
우리가 실행하는 파일을 Cpp1-4.cpp로 변경해주려면 프로젝트 우클릭 > 시작 프로젝트로 설정을 누르면
아래와 같이 얇은 글자로 되어 있던 프로젝트 명칭이
아래와 같이 굵은 글자로 변경되는 것을 볼 수 있다
그리고 이제 Ctrl + f5로 프로젝트를 실행하면
선택한 프로젝트에서 실행된것을 볼 수 있다.
그리고 출력된 cmd 창 끝을 보면 0 코드와 함께 종료되었다 라는 내용이 나오는데
우리 코드에서 return값을 1로 변경해보면
내용이 1 코드와 함께 종료되었다고 변경되는 것을 볼 수 있다.
이건 exit코드라고 하는 종료코드이다.
이 프로그램은 우리가 실행할 수 도 있으나 다른 사람이 실행할 수 도 있는데 이 프로그램이 정상적으로 종료가 되었는지 정상적으로 종료되지 않았는지 알려줄 필요가 있다.
그래서 return 0을 설정해두면 프로그램이 정상적으로 종료되었음을 알 수 있고 만약 0이 아니라면 프로그램이 정상적으로 종료되지 않았음을 알 수 있게 되는 것이다.
그런데 사실 main함수는 조금 특별한 함수이기 때문에 return을 생략해도 실행이 문제가 없고 default로 return 0을 한것으로 간주해준다.
'Programming Language > C++' 카테고리의 다른 글
Ch 02. 데이터 - 06 불리언형 (0) | 2025.03.24 |
---|---|
C++ - 문자형 데이터(char) (0) | 2025.02.17 |
열혈 C++ - Chapter 04. 클래스의 완성 (2) | 2024.11.24 |
열혈 C++ - Chapter 03. 클래스의 기본 (0) | 2024.11.19 |
열혈 C++ - Chapter 02. C언어 기반의 C++ 2 (0) | 2024.11.19 |