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