실행 파일과 라이브러리 파일
컴파일러가 결과물로 생성할 수 있는 파일의 종류는 두 종류가 있다.
- 실행 파일
- 라이브러리 파일
설명:
- 실행 파일: 말 그대로 실행 프로그램이다.
- 사용자가 게임 패키지를 받아 실행할 때 실행 파일을 찾게 된다.
- 라이브러리: 실행 프로그램이 실행하는 파일이다.
- 프로그래밍은 중복을 줄이는 일이 항상 수반된다.
- 내가 한번 짠 코드를 매번 프로그램 만들기 시작할 때 마다 작성해야 한다면 낭비일 것이다.
- 라이브러리 파일은 한번 생성해 두면 다른 프로그램에 의해 불릴 수 있기 때문에 중복 작업을 줄일 수 있다.
- 또는 자신이 범용적인 코드를 작성한다면 라이브러리 형태로 배포하면 된다.
윈도는 실행파일을 .exe 확장자로 표시하고 라이브러리 파일은 .dll 확장자로 표시한다.
리눅스는 실행파일에 확장자가 없고 라이브러리 파일은 .so 확장자를 갖는다.
주의할 점은 실제 파일을 구분짓는 요소는 확장자명이 아니라 파일을 열었을 때 파일 내용물의 도입부의 구조 차이에 따라 결정된다는 점이다.
확장자명은 사용자가 일일이 파일을 열어 보고 파일 종류를 확인해야 하는 불편함을 해결하기 위해 정의한 규칙이다.
소스 파일과 헤더 파일
컴파일러가 읽어들여 해석할 수 있는 파일의 종류는 두 종류 이다.
- 소스 파일
- 헤더 파일
확장자명은 .c 와 .h 이다.
.c 파일은 컴파일 과정에서 .o 또는 .obj 등의 확장자를 갖는 object 파일로 변형된다.
컴파일러는 object 파일들을 모아 하나의 실행 파일로 만든다.
.h 파일은 헤더 파일로써 여러 object 파일로 작업하는 경우 컴파일러에 링크할 때 힌트를 주는 수단으로 사용된다.
C 프로젝트의 구성
프로그램 규모가 커지면 자연스레 소스 파일 하나에 모든 소스를 집어 넣기엔 파일이 너무 커지기 때문에 관리하기가 힘들어 진다.
기능별로 파일을 나누어 작성하게 되면 문제가 생기거나 수정하고 싶을 때 해당 파일을 찾아 수정하면 되기 때문에 작업하는데 수월한 면이 있다.
C 프로젝트에는 .c 파일과 .h 파일 두 종류의 파일들이 포함되어 있다.
Hello World 프로그램 살펴보기
1. Text editor 를 이용해 main.c 라는 파일명으로 아래 내용을 작성한다.
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char * argv[]) {
printf("Hello world\n");
return 0;
}
2. 컴파일
$ gcc -o hello main.c
3. 실행
$ hello
Hello world
설명:
- stdio.h 와 stdlib.h 는 어디 있는가?
- stdio.h 와 stdlib.h 는 표준 라이브러리 header 파일로써 따로 컴파일러에게 위치를 일러주지 않아도 기본으로 컴파일러가 알아서 해당 파일들을 참조한다.
- main 함수
- 프로그램을 실행하면 운영체제가 처음으로 실행하는 함수
- printf()
- stdio 라이브러리에 미리 정의된 함수로써 화면에 문자열을 출력하는 함수.
"Hello world\n"
문자열 규칙:
- 문자열은 "" 으로 감싼다.
- \n 은 개행 문자
댓글 없음:
댓글 쓰기