리눅스에서 c 소스 파일을 컴파일할때 필요한 gcc 의 간단한 사용법

리눅스(Linux) 에서는 어플리케이션(Application) 을 개발할때 주로 C/C++를 사용합니다. Windows에서 어플리케이션을 개발할때 MFC, WinAPI 등을 통해서 IDE인 Visual Studio를 사용하여 개발하는 것과는 약간 다르다고 볼 수 있습니다. 물론 Windows 에서도 C++ 혹은 C# 등의 언어를 사용하여 MFC, WinAPI 등의 Windows API를 호출하여 개발하는 것이라서  사용언어는 비슷하지만 개발도구가 다르다고 이해하면 될 듯 합니다.

그렇다면 리눅스에서는 어플리케이션을 개발할때 어떤 도구를 사용해야 될까요? C나 C++로 된 Source를 컴파일을 하기 위해서는 컴파일러가 필요하겠죠? 리눅스에서는 주로 “gcc” 라는 Open Source Compiler(컴파일러)를 사용하여 컴파일을 하면 됩니다. 

여기서는 gcc의 대한 것과 gcc의 간단한 사용 방법에 대해 알아보겠습니다. 

GCC 란?

gcc는 GNU 프로젝트의 일환으로 1987년 리처드 스톨먼이 최초 개발하여 배포하였습니다. gcc는”GNU compiler collection”의 약자로써 GNU 프로젝트 답게 Open Source 이고, 현재까지 Release 되어 개발 및 배포되고 있는 컴파일러입니다. 

gcc의 이런 성격으로 인해 주로 리눅스 진영에서 컴파일 도구로 gcc를 탑재하고 있고, 현재까지 gcc는 리눅스 관련 도구 개발에 주로 사용되고 있습니다. Windows 기반의 개발도구가 아직까지는 유료로 판매되어 보급되는 반면에 gcc는 Open Source 이므로 어느 누구나 무료로 다운로드 하여 사용할 수 있습니다. 

2019년 현재 배포된 gcc 최신 버전은 7.5 네요. 

gcc로 간단하게 c source 컴파일 해보기

그럼, 리눅스에서 gcc로 c source를 컴파일 해보도록 하겠습니다. 제가 사용하는 개발환경이 우분투이므로 우분투에서 예로 들어보도록 하겠습니다. (gcc 사용법은 다른 배포판이라고 해도 거의 동일하다고 보시면 됩니다.)

먼저 gcc의 버전을 확인해 볼까요? 

$ gcc -v

를 입력해 보면 다음과 같이 gcc의 버전이 나타납니다.

제가 사용하는 우분투는 16.04 이고, gcc version은 5.4.0 이네요. 2016년6월9일에 배포된 버전인듯 합니다. gcc는 최신버전을 사용하면 좋지만 일반 개발자가 사용하기에는 좀 오래된 버전도 개발에는 지장이 없습니다. 

위의 메시지가 뜬다면 개발환경에 gcc가 이미 설치가 되어 있다는 의미가 됩니다. 만약 위의 메시지가 정상적으로 나타나지 않는다면 gcc가 설치가 되어 있지 않으므로 아래의 커맨드를 이용하여 gcc를 새로 설치하도록 합니다.

$ sudo apt-get install gcc 

위 커맨드를 입력하고 “gcc -v”가 정상적으로 표시가 된다면 설치가 잘 된것입니다. 이 상태면 gcc를 사용할 준비가 되었다고 보면 되겠습니다.

그럼 간단하게 gcc를 사용하여 컴파일을 해볼까요? 먼저 컴파일할 Source를 준비합니다. 확장자는 “.c” 파일이어야 합니다. 

#include <stdio.h>

int main()
{
    printf("Hello World\n");

    return 0;
}

위의 코드는 C를 처음 접할때 가장 기초적으로 결과를 확인할 때 사용하는 코드입니다. 위 코드를 복사하여 붙여놓고 사용해도 됩니다. 저는 파일 이름을 “test.c” 라고 만들었습니다. 

vi 편집기로 Source를 작성한 다음에 :wq 를 사용하여 저장을 해도 됩니다.

test.c 라는 파일이 생성되었으면 gcc로 컴파일을 해보도록 하겠습니다. 간단한 사용법은 아래와 같습니다.

$ gcc -o (실행파일명) (소스파일명)

이번에 작성한 test.c 파일은 gcc로 컴파일하려면 아래와 같이 실행을 해주면 됩니다.

$ gcc -o test test.c

위의 구문을 실행시키고 나서 별다른 메시지가 나오지 않으면 gcc로 c 파일을 정상적으로 컴파일을 한 것입니다. 여기서 “-o” 옵션은 실행파일을 test라는 파일로 즉시 컴파일하여 생성하라는 뜻입니다.

“ls -la” 명령어를 실행해보면 “test”라는 실행파일이 생성된 것을 알 수 있습니다. 그럼 test 를 실행을 시켜볼까요?

현재 경로에서 $ ./test 를 입력하여 실행하면 됩니다.

실행해 보니 “hello world” 라는 메시지가 출력됨을 알 수 있습니다. 

이번 시간에는 gcc 컴파일러의 간단한 사용법에 대해서 알아봤습니다. Windows 개발 환경과는 다르게 리눅스에서는 SSH로 접속한 터미널 창에서 개발하는 경우가 많은데요, GUI 기반의 Windows 개발 환경과는 다르게 일일이 개발자가 명령어를 쳐가며 컴파일하고 디버깅을 할 경우가 많습니다. 다소 익숙하지 않더라도 리눅스 환경에서는 커맨드를 직접 입력해가면서 개발하는 습관을 들이는게 좋습니다. 추후에는 gcc의 다양한 옵션에 대하여 기술해 보도록 하겠습니다.

'코드도사(codedosa.com)'에는 쿠팡파트너스 등의 제휴링크가 포함되어 있으며 수수료를 제공받을 수 있습니다.