우분투 c99-gcc 컴파일러 완벽 가이드: C99 표준 C언어 빌드 실습

개요

Ubuntu 환경에서 ISO C99 표준을 준수하는 c99-gcc 컴파일러의 개념과 실무 활용법을 살펴봅니다. 필수 빌드 도구 설치부터 C99 최신 문법을 포함한 예제 코드 작성, 컴파일 및 최적화 옵션 적용까지 터미널에서 직접 실행해 봅니다.

1. build-essential 패키지 설치 및 c99-gcc 환경 확인

c99-gcc 컴파일러 실습 진행을 위해 필수 빌드 도구 패키지를 설치합니다.

sudo apt-get update -qq && sudo apt-get install -y build-essential gcc

시스템에 c99-gcc 실행 파일이 존재하는지 확인하고 바이너리 파일의 설치 경로를 점검하기 위해 which c99-gcc 명령어를 실행합니다.

which c99-gcc

c99-gcc 명령어는 C99 표준 규격에 맞춰 C 소스 코드를 컴파일하는 도구이며, --version 옵션을 통해 현재 설치된 컴파일러의 버전 정보를 확인합니다.
⚙️ [주요 옵션]

-c : 소스 코드를 링크하지 않고 오브젝트 파일(.o)로만 컴파일합니다.
-o : 생성할 출력 실행 파일의 이름을 지정합니다.
-O : 코드 실행 속도와 크기 최적화 단계를 설정합니다.
-g : 디버거 사용을 위한 디버깅 심볼 정보를 생성합니다.
-Wall : 컴파일 시 코드의 잠재적 오류를 방지하기 위해 모든 주요 경고를 출력합니다.
-I : 헤더 파일을 탐색할 디렉터리 경로를 추가합니다.
-l : 링크 단계에서 연결할 라이브러리 이름을 지정합니다.

c99-gcc –version

2. C99 표준 문법을 적용한 C언어 예제 코드 작성

c99-gcc 컴파일 실습을 진행할 전용 작업 디렉터리를 생성하기 위해 mkdir -p ~/c99_practice 명령어를 실행합니다.

mkdir -p ~/c99_practice

stdbool.h 헤더의 bool 타입과 for 루프 내부 변수 선언 등 C99 표준 문법을 적용한 예제 소스 코드를 생성하기 위해 cat 명령어로 ~/c99_practice/c99_test.c 파일을 작성합니다.

![cat « ‘EOF’ > ~/c99_practice/c99_test.c #include <stdio.h> #include <stdbool.h>

int main(void) { bool is_valid = true; for (int i = 0; i < 3; i++) { printf(“Iteration %d: Flag is %s\n”, i, is_valid ? “true” : “false”); } return 0; } EOF](captures/s02_c02_cat_____EOF______c99_practice_c99_test_c__include.png)

작성한 예제 소스 코드의 내용이 파일에 올바르게 저장되었는지 확인하기 위해 cat ~/c99_practice/c99_test.c 명령어를 실행합니다.

cat ~/c99_practice/c99_test.c

3. c99-gcc를 통한 C99 소스 코드 컴파일 및 바이너리 실행

작성한 c99_test.c 소스 코드를 컴파일하여 c99_test 실행 바이너리를 생성하기 위해 c99-gcc -o ~/c99_practice/c99_test ~/c99_practice/c99_test.c 명령어를 실행합니다.

c99-gcc -o ~/c99_practice/c99_test ~/c99_practice/c99_test.c

컴파일된 실행 파일이 올바르게 생성되었는지 확인하고 파일의 권한과 크기를 점검하기 위해 ls -l ~/c99_practice/c99_test 명령어를 실행합니다.

ls -l ~/c99_practice/c99_test

빌드가 완료된 c99_test 바이너리 파일을 직접 실행하여 C99 표준 코드가 정상적으로 동작하는지 출력 결과를 확인합니다.

~/c99_practice/c99_test

4. 경고 플래그와 최적화 옵션을 적용한 고급 컴파일

잠재적인 코드 결함을 점검하는 -Wall, -Wextra 경고 옵션과 실행 효율을 높이는 -O2 최적화 옵션을 적용하여 c99_test_opt 바이너리를 빌드하기 위해 c99-gcc -Wall -Wextra -O2 -o ~/c99_practice/c99_test_opt ~/c99_practice/c99_test.c 명령어를 실행합니다.
컴파일 과정에서 별도의 경고 메시지 없이 정상적으로 빌드가 완료됩니다.

c99-gcc -Wall -Wextra -O2 -o ~/c99_practice/c99_test_opt ~/c99_practice/c99_test.c

생성된 소스 파일 및 실행 바이너리의 상세 정보와 용량을 사람이 읽기 쉬운 단위로 비교·점검하기 위해 ls -lh ~/c99_practice/c99_test* 명령어를 실행합니다.

ls -lh ~/c99_practice/c99_test*

최적화 옵션을 적용하여 새로 생성한 c99_test_opt 실행 바이너리를 직접 실행하여 프로그램이 정상적으로 동작하는지 확인합니다.

~/c99_practice/c99_test_opt

지금까지 우분투(Ubuntu) 환경에서 c99-gcc를 활용해 C99 표준 C언어 코드를 빌드하고 컴파일하는 방법을 간단하게 살펴보았습니다.
표준 규격에 맞춘 안전하고 현대적인 C 프로그래밍 개발 환경을 구축하는 데 도움이 되었기를 바랍니다.