Home Makefile
Post
Cancel

Makefile

Makefile

소프트웨어 개발을 위해 유닉스 계열 운영 체제에서 주로 사용하는 프로그램 빌드 도구

main.c

1
2
3
4
5
6
void hello();

int main()
{
	hello();
}

test.c

1
2
3
4
5
6
#include <unistd.h>

void hello()
{
	write(1,"hello world!/n",13);
}

위와 같은 두개의 파일이 있을 때 평소대로 컴파일을 하려면 gcc -c main.c test.cgcc -o hello main.o test.o의 명령어를 사용해서 번거롭게 작업을 해야한다. 하지만 Makefile을 활용하면 make 명령어 하나로 이 작업들을 한번에 실행할 수 있다.

Makefile

1
2
3
4
5
6
SRCS	= main.c test.c

OBJS	= ${SRCS:.c=.o}

all:	${OBJS} # 아래가 실행되기 위한 조건
		gcc -o hello main.c test.c

주요 규칙

  • SRCS : 컴파일할 소스파일
  • OBJS : 중간단계의 오브젝트 파일
  • all : 기본 빌드 규칙
1
2
3
4
5
6
7
8
SRCS	= main.c test.c

OBJS	= ${SRCS:.c=.o}

NAME	= hello

${NAME}:	${OBJS}
		gcc -o ${NAME} ${OBJS}

위와 같이 나타낼 수도 있다.

기타 규칙

  • NAME
  • CFLAGS : -Wall등의 플래그 사용
  • CC : 컴파일러 정의
  • RM
  • .c.o
  • clean : rm ${OBJS}처럼 써서 오브젝트 파일 삭제함
  • fclean
  • re : fclean all처럼 전부 지웠다가 다시 컴파일할 수 있음
  • .PHONY : 파일로 해석하면 안되는 규칙들 정의

Ref.

https://ko.wikipedia.org/wiki/Make_(소프트웨어)

This post is licensed under CC BY 4.0 by the author.

Libft ① Subject

WSL2 시작 경로 변경하기