Page 15 -
P. 15

다음 명령을 통해 프로그램을 쉽게 컴파일할 수 있다.


                   g++ hello42.cpp

                   지난 세기의 전통에 따라 생성된 바이너리는 기본적으로 a.out이라는 이름을 갖는다. 언젠가 여
                   러 프로그램을 만드는 날이 오게 되면 출력 플래그(-o)를 사용해 의미 있는 이름을 붙일 수 있다.


                   g++ hello42.cpp -o hello42

                   또한, (최신 버전에서) 빌드 바이너리에 대한 기본 규칙을 제공하는 빌드 도구인 make(7.2.2.1절의
                   개요를 참조)를 사용할 수도 있다. make는 다음과 같이 호출할 수 있다.

                   make hello42


                   make를 호출하면 현재 디렉터리에서 비슷한 이름을 갖는 프로그램 소스를 찾는다. hello42.cpp
                   를 찾고나면 .cpp가 C++ 소스를 위한 표준 파일 접미사이기 때문에 시스템의 기본 C++ 컴파일
                   러를 호출하게 된다. 프로그램이 컴파일되고 나면 다음 명령을 통해 호출할 수 있다.


                   ./hello42

                   우리가 생성한 바이너리는 다른 소프트웨어가 필요하지 않으며, 호환 가능한 다른 리눅스 시스템                      *
                   에 복사한 뒤 실행할 수 있다.

                   윈도(Windows): 만약 MinGW를 사용한다면 리눅스와 같은 방식으로 컴파일할 수 있다. 만약 비
                   주얼 스튜디오(Visual Studio)를 사용한다면 먼저 프로젝트를 생성해야 한다. 프로젝트를 만드는
                   가장 쉬운 방법은 콘솔 애플리케이션에 대한 프로젝트 템플릿을 사용하는 방법으로 자세한 설

                   명은 http://www.cplusplus.com/doc/tutorial/introduction/visualstudio를 참고한다. 프로그램
                   을 실행할 때, 콘솔이 닫히기 전에 출력 결과를 볼 수 있는 시간은 수 밀리 초밖에 없다. 볼 수 있
                                                      **
                   는 시간을 1초로 연장하고 싶다면 포팅(Porting) 이 되지 않는 명령어인 Sleep(1000);을 삽입하고
                   <windows.h>를 포함하면 된다. C++11 이후 표준을 지원한다면 기다리는 부분을 포팅이 되는 명
                   령어로 바꿀 수 있다.

                   std::this_thread::sleep_for(std::chrono::seconds(1));




                   *    표준 라이브러리는 종종 동적으로 링크되며(7.2.1.4절 참조), 다른 시스템에서 같은 버전의 표준 라이브러리가 있어야 한다(호환성 요구 사항의
                      일부).
                   **    역주 실행 가능한 프로그램이 원래 설계된 바와 다른 컴퓨팅 환경(이를테면 CPU, 운영체제, 서드 파티 라이브러리 등)에서 동작할 수 있도록
                      하는 과정

             026




         모던c++_09.indd   26                                                                     2017-12-11   오전 11:02:54
   10   11   12   13   14   15   16   17   18   19   20