첫 번째 프로그램을 작성하기 전에 통합 개발 환경(IDE) 내에서 새 프로그램을 만드는 방법을 배워야 합니다. 이 강의에서는 그 방법을 다루며 첫 번째 프로그램을 컴파일하고 실행할 것입니다!
Projects
IDE 내에서 C++ 프로그램을 작성하려면 일반적으로 새 프로젝트를 만드는 것으로 시작합니다(이 작업을 수행하는 방법은 잠시 후 알려드립니다). 프로젝트는 실행하거나 사용할 수 있는 실행 파일(또는 라이브러리, 웹 사이트 등)을 생성하는 데 필요한 모든 소스 코드 파일, 이미지, 데이터 파일 등을 포함하는 컨테이너입니다. 프로젝트는 또한 다양한 IDE, 컴파일러 및 링커 설정을 저장하고 중단한 위치를 기억하므로 나중에 프로젝트를 다시 열 때 IDE 상태를 중단한 위치로 복원할 수 있습니다. 프로그램을 컴파일하기로 선택하면 프로젝트의 모든 .cpp 파일이 컴파일되고 링크됩니다.
각 프로젝트는 하나의 프로그램에 해당합니다. 두 번째 프로그램을 만들 준비가 되면 새 프로젝트를 만들거나 기존 프로젝트의 코드를 덮어써야 합니다(유지하고 싶지 않은 경우). 프로젝트 파일은 일반적으로 IDE에 따라 다르므로 한 IDE용으로 만든 프로젝트는 다른 IDE에서 다시 만들어야 합니다.
Best Practice (모범 사례) 작성하는 새 프로그램마다 새 프로젝트를 작성하십시오. |
Console projects
새 프로젝트를 만들 때 일반적으로 어떤 유형의 프로젝트를 만들고 싶은지 묻는 메시지가 표시됩니다. 이 자습서에서 만들 모든 프로젝트는 콘솔 프로젝트입니다. 콘솔 프로젝트는 Windows, Linux 또는 Mac 콘솔에서 실행할 수 있는 프로그램을 생성한다는 의미입니다.
다음은 Windows 콘솔의 스크린샷입니다.
기본적으로 콘솔 응용 프로그램에는 GUI(그래픽 사용자 인터페이스)가 없으며 콘솔에 텍스트를 인쇄하고 키보드에서 입력을 읽고 독립 실행형 실행 파일로 컴파일됩니다. 이것은 복잡성을 최소화하고 다양한 시스템에서 작동하도록 보장하기 때문에 C++ 학습에 적합합니다.
이전에 콘솔을 사용한 적이 없거나 액세스 방법을 모르더라도 걱정하지 마십시오. IDE(필요할 때 콘솔을 호출함)를 통해 프로그램을 컴파일하고 실행합니다.
Workspaces / solutions
프로그램을 위한 새 프로젝트를 생성하면 많은 IDE가 자동으로 프로젝트를 "작업 공간" 또는 "솔루션"에 추가합니다(용어는 IDE에 따라 다름). 작업 공간 또는 솔루션은 하나 이상의 관련 프로젝트를 보유할 수 있는 컨테이너입니다. 예를 들어 게임을 작성 중이고 싱글 플레이어와 멀티 플레이어를 위한 별도의 실행 파일을 갖고 싶다면 두 개의 프로젝트를 만들어야 합니다. 이 두 프로젝트가 완전히 독립적이라는 것은 이치에 맞지 않습니다. 결국 동일한 게임의 일부입니다. 대부분의 경우 각각은 단일 작업 공간/솔루션 내에서 별도의 프로젝트로 구성됩니다.
단일 솔루션에 여러 프로젝트를 추가할 수 있지만 일반적으로 특히 학습하는 동안 각 프로그램에 대해 새 작업 공간 또는 솔루션을 만드는 것이 좋습니다. 더 간단하고 문제가 발생할 가능성이 적습니다.
Writing your first program
전통적으로 프로그래머가 새로운 언어로 작성하는 첫 번째 프로그램은 그 유명한 hello world 프로그램이며, 나중에 이를 감사할 것입니다. 아마도...
Creating a project in Visual Studio 2019
Visual Studio 2019를 실행하면 다음과 같은 대화 상자가 표시되어야 합니다.
새 프로젝트 만들기를 선택합니다.
그러면 다음과 같은 대화 상자가 표시됩니다.
이전 프로젝트를 이미 연 경우 파일 메뉴 > 새로 만들기 > 프로젝트를 통해 이 대화 상자에 액세스할 수 있습니다.
Windows 바탕 화면 마법사를 선택하고 다음을 클릭합니다. 이 항목이 표시되지 않으면 Visual Studio를 설치할 때 C++로 데스크톱 개발 워크로드를 설치하도록 선택하는 것을 잊었을 것입니다. 이 경우 단원 0.6 - 통합 개발 환경(IDE) 설치로 돌아가서 표시된 대로 Visual Studio를 다시 설치합니다 (참고: 전체 다시 설치를 수행하는 대신 Visual Studio 설치 프로그램을 실행하고 기존 설치를 수정하여 추가할 수 있습니다. C++ workload).
다음으로 다음과 같은 대화 상자가 표시됩니다.
기존 프로젝트 이름을 HelloWorld로 바꿉니다.
솔루션과 프로젝트를 동일한 디렉터리에 배치하는 것도 확인하는 것이 좋습니다. 이렇게 하면 각 프로젝트와 함께 생성되는 하위 디렉터리 수가 줄어들기 때문입니다.
계속하려면 만들기를 클릭하세요.
마지막으로 마지막 대화 상자가 표시됩니다.
응용 프로그램 유형이 콘솔 응용 프로그램(.exe)으로 설정되어 있고 미리 컴파일된 헤더 옵션이 선택 해제되어 있는지 확인합니다. 그런 다음 확인을 클릭합니다.
이제 프로젝트를 만들었습니다! 계속하려면 아래 Visual Studio 솔루션 탐색기 섹션으로 이동하세요.
Q: 미리 컴파일된 헤더는 무엇이며 왜 비활성화합니까? (Q: What are precompiled headers and why are we turning them off?) 대규모 프로젝트(코드 파일이 많은 프로젝트)에서 미리 컴파일된 헤더는 대규모 프로젝트에서 발생하는 경향이 있는 일부 중복 컴파일을 방지하여 컴파일 속도를 향상시킬 수 있습니다. 그러나 미리 컴파일된 헤더를 사용하려면 추가 작업이 필요하며 소규모 프로젝트(예: 자습서에서 생성할 프로젝트)의 경우 컴파일 시간에 거의 차이가 없습니다. 이러한 이유로 미리 컴파일된 헤더를 처음에는 끄고 나중에 컴파일 시간이 문제가 되는 경우에만 활성화하는 것이 좋습니다. |
Creating a project in Visual Studio 2017 or older
Visual Studio 2017 또는 이전 버전에서 새 프로젝트를 만들려면 파일 메뉴 > 새로 만들기 > 프로젝트로 이동합니다. 다음과 같은 대화 상자가 나타납니다.
먼저 Visual C++가 왼쪽에 나열되어 있는지 확인합니다. Visual C++가 표시되지 않으면 Visual Studio를 설치할 때 C++로 데스크톱 개발 워크로드를 설치하도록 선택하는 것을 잊었을 것입니다. 이 경우 단원 0.6 -- 통합 개발 환경(IDE) 설치로 돌아가 표시된 대로 Visual Studio를 다시 설치합니다(참고: 전체 다시 설치를 수행하는 대신 Visual Studio 설치 프로그램을 실행하고 기존 설치를 수정하여 추가할 수 있습니다. C++ 워크로드).
Visual Studio 2017 v15.3 이상을 사용하는 경우 Visual C++ 아래에서 Windows 바탕 화면을 선택한 다음 기본 창에서 Windows 바탕 화면 마법사를 선택합니다.
Windows 데스크톱이 옵션으로 표시되지 않으면 이전 버전의 Visual Studio를 사용 중일 수 있습니다. 괜찮아. 대신 기본 창에서 Win32를 선택한 다음 Win32 콘솔 응용 프로그램을 선택합니다.
아래의 이름 필드에 프로그램 이름을 입력합니다(기존 이름을 HelloWorld로 대체). 위치 필드에서 선택적으로 프로젝트를 배치할 다른 위치를 선택할 수 있습니다. 지금은 기본값이 좋습니다.
확인을 클릭합니다. 이전 버전의 Visual Studio를 사용하는 경우 Win32 응용 프로그램 마법사가 시작됩니다. 다음을 누릅니다.
이 시점에서 다음과 같은 마법사 대화 상자가 표시되어야 합니다(이전 버전의 Visual Studio에서는 다른 스타일을 사용하지만 대부분의 동일한 옵션이 있음).
미리 컴파일된 헤더를 선택 취소했는지 확인합니다.
그런 다음 확인 또는 완료를 클릭합니다. 이제 프로젝트가 생성되었습니다!
Visual Studio Solution Explorer
창의 왼쪽 또는 오른쪽에 솔루션 탐색기라는 창이 표시되어야 합니다. 이 창 내에서 Visual Studio는 솔루션(솔루션 'HelloWorld')을 생성했습니다. 그 안에 이름이 굵게 표시된 것은 새 프로젝트(HelloWorld)입니다. 프로젝트 내에서 Visual Studio는 HelloWorld.cpp(소스 파일 트리 항목 아래)를 포함하여 여러 파일을 생성했습니다. 지금은 무시할 수 있는 다른 .cpp 또는 .h 파일도 볼 수 있습니다.
텍스트 편집기에서 Visual Studio가 이미 HelloWorld.cpp를 열고 일부 코드를 생성했음을 알 수 있습니다. 모든 코드를 선택 및 삭제하고 다음을 IDE에 입력/복사합니다.
#include <iostream>
int main()
{
std::cout << "Hello, world!";
return 0;
}
프로그램을 컴파일하려면 F7 키를 누르거나(이 방법이 작동하지 않으면 Ctrl-Shift-B 시도) 빌드 메뉴 > 솔루션 빌드로 이동합니다. 모든 것이 잘 진행되면 출력 창에 다음이 표시되어야 합니다.
1>------ Build started: Project: HelloWorld, Configuration: Debug Win32 ------
1>HelloWorld.cpp
1>HelloWorld.vcxproj -> c:\users\alex\documents\visual studio 2017\Projects\HelloWorld\Debug\HelloWorld.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
이것은 컴파일이 성공했음을 의미합니다!
Q: I got error C1010 ("fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add ‘#include "stdafx.h"’ to your source?"). What now? 프로젝트를 생성할 때 미리 컴파일된 헤더를 끄는 것을 잊었습니다. 프로젝트를 다시 만들고(위 지침에 따라) 미리 컴파일된 헤더를 비활성화해야 합니다. |
컴파일된 프로그램을 실행하려면 Ctrl-F5를 누르거나 디버그 메뉴로 이동하여 디버깅하지 않고 시작을 선택합니다. 다음이 표시됩니다.
그것이 당신의 프로그램의 결과입니다! 축하합니다. 첫 번째 프로그램을 컴파일하고 실행했습니다!
Creating a project in Code::Blocks
새 프로젝트를 만들려면 파일 메뉴 > 새로 만들기 > 프로젝트로 이동합니다. 다음과 같은 대화 상자가 나타납니다.
콘솔 애플리케이션을 선택하고 이동(또는 생성) 버튼을 누릅니다.
콘솔 응용 프로그램 마법사 대화 상자가 표시되면 다음을 누르고 C++가 선택되어 있는지 확인한 후 다음을 다시 누릅니다.
이제 프로젝트 이름을 지정하라는 메시지가 표시됩니다. 프로젝트 제목을 HelloWorld로 지정합니다. 원하는 곳에 저장할 수 있습니다. Windows에서는 C:\CBProjects와 같은 C 드라이브의 하위 디렉터리에 저장하는 것이 좋습니다.
활성화할 구성을 묻는 다른 대화 상자가 표시될 수 있습니다. 기본값은 여기에서 적절해야 하므로 마침을 선택합니다.
이제 새 프로젝트가 생성되었습니다.
화면 왼쪽에 프로젝트 탭이 선택된 관리 창이 표시되어야 합니다. 해당 창 안에 HelloWorld 프로젝트가 있는 Workspace 폴더가 표시됩니다.
HelloWorld 프로젝트 내에서 Sources 폴더를 확장하고 “main.cpp”를 더블 클릭합니다. Hello World 프로그램이 이미 작성되었음을 알 수 있습니다!
다음으로 교체하십시오.
#include <iostream>
int main()
{
std::cout << "Hello, world!";
return 0;
}
프로젝트를 빌드하려면 Ctrl-F9를 누르거나 빌드 메뉴 > 빌드로 이동합니다. 모든 것이 잘 진행되면 빌드 로그 창에 다음이 표시되어야 합니다.
-------------- Build: Debug in HelloWorld (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -Wall -fexceptions -g -std=c++14 -c C:\CBProjects\HelloWorld\main.cpp -o obj\Debug\main.o
mingw32-g++.exe -o bin\Debug\HelloWorld.exe obj\Debug\main.o
Output file is bin\Debug\HelloWorld.exe with size 1.51 MB
Process terminated with status 0 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
이것은 컴파일이 성공했음을 의미합니다!
컴파일된 프로그램을 실행하려면 Ctrl-F10을 누르거나 빌드 메뉴 > 실행으로 이동합니다. 다음과 유사한 내용이 표시됩니다.
그것이 당신의 프로그램의 결과입니다!
Linux 사용자의 경우 (For Linux Users) Linux 사용자는 Code::Blocks가 컴파일되기 전에 추가 패키지를 설치해야 할 수 있습니다. 자세한 내용은 0.6 단원 -- IDE(통합 개발 환경) 설치에서 Code::Blocks 설치 지침을 참조하십시오. |
If you’re using g++ on the command line
이 경우 프로젝트를 생성할 필요가 없습니다. HelloWorld.cpp라는 텍스트 파일에 다음을 붙여넣고 파일을 저장하기만 하면 됩니다.
#include <iostream>
int main()
{
std::cout << "Hello, world!";
return 0;
}
명령줄(command LIne)에서 다음을 입력합니다.
g++ -o HelloWorld HelloWorld.cpp
그러면 HelloWorld.cpp가 컴파일되고 링크됩니다. 실행하려면 다음을 입력하십시오.
HelloWorld(또는 아마도 ./HelloWorld)로 이동하면 프로그램의 출력이 표시됩니다.
If you’re using other IDEs or a web-based compiler
다음을 수행하는 방법을 스스로 파악해야 합니다.
1. 콘솔 프로젝트 만들기(IDE만 해당)
2. 프로젝트에 .cpp 파일 추가(IDE가 자동 생성되지 않은 경우에만)
3. 파일에 다음 코드를 붙여넣습니다.
#include <iostream>
int main()
{
std::cout << "Hello, world!";
return 0;
}
4. 프로젝트 컴파일
5. 프로젝트 실행
If compiling fails
괜찮아요, 심호흡을 하세요. 우리는 아마 그것을 고칠 수 있습니다. :)
먼저 컴파일러에서 제공한 오류 메시지를 확인합니다. 대부분의 경우 오류가 발생한 줄을 나타내는 줄 번호가 포함됩니다. 해당 줄과 그 주변의 줄을 모두 검사하고 오타나 맞춤법 오류가 없는지 확인합니다. 또한 코드에 줄 번호를 포함하지 않았는지 확인하십시오(편집자가 제공해야 함).
두 번째로, 0.8과의 Q&A를 살펴보십시오. 문제가 여기에서 다루어질 수 있으므로 몇 가지 일반적인 C++ 문제입니다.
셋째, 컴파일 중인 예제가 포함된 강의 아래에 있는 설명을 읽으십시오. 누군가가 동일한 문제에 직면하여 솔루션을 제공했을 수 있습니다.
마지막으로 위의 모든 방법이 실패하면 Google에서 오류 메시지를 검색해 보십시오. 다른 사람이 이전에 이 문제를 겪었고 해결 방법을 알아냈을 가능성이 큽니다.
If your program runs but the console window flashes and closes immediately
콘솔 프로그램이 실행되면 콘솔 창이 열리고 프로그램의 모든 출력이 콘솔 창에 기록됩니다.
프로그램 실행이 완료되면 대부분의 최신 IDE는 사용자가 계속하기 전에 프로그램 결과를 검사할 수 있도록 콘솔을 열린 상태로 유지합니다(키를 누를 때까지). 그러나 일부 이전 IDE는 프로그램 실행이 완료되면 콘솔 창을 자동으로 닫습니다. 이것은 일반적으로 원하는 것이 아닙니다.
IDE가 콘솔 창을 자동으로 닫는 경우 다음 두 단계를 사용하여 프로그램 종료 시 콘솔이 일시 중지되도록 할 수 있습니다.
먼저 다음 행을 프로그램 상단 근처에 추가하거나 확인하십시오.
#include <iostream>
#include <limits>
둘째, main() 함수의 끝에(return 문 바로 앞) 다음 코드를 추가합니다.
std::cin.clear(); // reset any error flags
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // ignore any characters in the input buffer until we find a newline
std::cin.get(); // get one more char from the user (waits for user to press enter)
이렇게 하면 프로그램이 계속하기 전에 사용자가 Enter 키를 누를 때까지 기다리게 되며(Enter를 두 번 눌러야 할 수도 있음) IDE가 콘솔 창을 닫기 전에 프로그램의 출력을 검사할 시간을 줍니다.
일반적으로 제안되는 시스템("일시 중지") 솔루션과 같은 다른 솔루션은 특정 운영 체제에서만 작동할 수 있으므로 피해야 합니다.
콘솔 창이 전혀 열리지 않고 프로그램이 실행되지 않는 것 같으면 바이러스 백신 또는 맬웨어 방지 프로그램이 프로그램 실행을 차단하고 있을 수도 있습니다. 이 경우 스캐너를 일시적으로 비활성화하고 문제가 해결되는지 확인하십시오.
Conclusion
축하합니다. 이 튜토리얼의 가장 어려운 부분(IDE 설치 및 첫 번째 프로그램 컴파일)을 완료했습니다!
Hello World 프로그램의 다른 행이 무엇을 하는지 이해하지 못한다고 걱정하지 마십시오. 다음 장의 시작 부분에서 각 줄을 자세히 살펴보고 설명하겠습니다.
reference : https://www.learncpp.com/cpp-tutorial/writing-your-first-program/
'C++ (learncpp) > Introduction - Getting Started' 카테고리의 다른 글
0.9 — Configuring your compiler: Build configurations (0) | 2021.10.21 |
---|---|
0.8 — A few common C++ problems (0) | 2021.10.20 |
0.6 — Installing an Integrated Development Environment (IDE) (0) | 2021.10.19 |
0.5 — Introduction to the compiler, linker, and libraries (0) | 2021.10.18 |
0.4 — Introduction to C++ development (0) | 2021.10.18 |