연결된 두개의 C소스파일의 컴파일과 링크작업 수행하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 1,642 조회
- 0 추천
- 목록
본문
연결된 두개의 C소스파일의 컴파일과 링크작업 수행하기
다음은 gcc컴파일러를 이용하여 두개이상의 C소스파일을 각각 컴파일하고 그 결과 생성된 각각의 목적파일로 링크를 하는 예를 보겠습니다.
아래의 예를 보시면 main.c와 print.c 두개의 C소스파일이 있습니다.
그리고 이 두개의 소스파일의 내용을 살펴보기 위하여 cat명령어로 main.c와 print.c를 각각 살펴본 것입니다.
[root@command root]# ls -l total 8 -rw-r--r-- 1 root root 80 Mar 25 23:53 main.c -rw-r--r-- 1 root root 64 Mar 25 23:33 print.c [root@command root]# [root@command root]# [root@command root]# cat main.c #include <stdio.h>
void print(void);
int main(void) { print(); return 0; }
[root@command root]# [root@command root]# cat print.c void print(void) { printf("Welcome www.superuser.co.kr \n"); } [root@command root]# |
위의 소스파일을 보시면 main.c에서 print.c파일에 있는 print()함수를 불러들이고 있습니다.
이제 위의 C소스파일 두개를 동시에 컴파일 해 보도록 하겠습니다.
즉, 아래의 예는 main.c와 print.c를 동시에 컴파일 하는 예입니다.
그 결과 목적파일인 main.o파일과 print.o파일이 각각 생성 되었습니다.
[root@command root]# gcc -c main.c print.c [root@command root]# [root@command root]# ls -l total 16 -rw-r--r-- 1 root root 80 Mar 25 23:53 main.c -rw-r--r-- 1 root root 704 Mar 25 23:54 main.o -rw-r--r-- 1 root root 64 Mar 25 23:33 print.c -rw-r--r-- 1 root root 808 Mar 25 23:54 print.o [root@command root]# |
그리고 위의 컴파일 결과로 생성된 main.o파일과 print.o파일을 가지고 링크작업을 하도록 하겠습니다.
즉, 아래의 예는 main.o와 print.o파일을 가지고 링크작업을 수행하며 -o옵션에서 지정한 superuser라는 실행파일을 결과로 만들어 냅니다.
[root@command root]# [root@command root]# gcc -o superuser main.o print.o [root@command root]# [root@command root]# ls -l total 28 -rw-r--r-- 1 root root 80 Mar 25 23:53 main.c -rw-r--r-- 1 root root 704 Mar 25 23:54 main.o -rw-r--r-- 1 root root 64 Mar 25 23:33 print.c -rw-r--r-- 1 root root 808 Mar 25 23:54 print.o -rwxr-xr-x 1 root root 11675 Mar 25 23:55 superuser [root@command root]# [root@command root]# ./superuser Welcome www.superuser.co.kr [root@command root]# |
이렇게 생성된 superuser라는 실행파일을 실행한 결과 “Welcome www.superuser.co.kr”가 실행이 되었습니다.
지금까지 gcc컴파일러에 대하여 간단한 C소스를 가지고 설명을 드렸습니다.
C에 대한 전문적인 공부를 하시려면 C전문서적을 참조하시고 여기서는 gcc라는 컴파일러를 이용하여 C소스를 컴파일 하는 정확하고 실무적인 방법에 대해서 설명을 드리는 것이 목적이기 때문에 그에 맞추어서 설명을 드렸습니다.
관련자료
-
이전
-
다음