간단한 makefile 만들기 예제
리눅스에서 make를 사용하여 빌드할 때 makefile에 정의된 컴파일/링크 규칙을 사용한다.
본 포스트에서는 간단하게 만들 수 있는 makefile 예제를 싣고 있다.
실행파일 만들기용 makefile
.SUFFIXES : .c .o
CC=gcc
LIBS = -lm -lrt -lpthread -L./libpath
INC = -I./include
CFLAGS = -g -Wall $(INC)
SRCS = main.c
OBJS=$(SRCS:.c=.o)
TARGET = test
all : $(TARGET)
$(TARGET) : $(OBJS)
$(CC) -o $@ $(CFLAGS) $(OBJS) $(LIBS)
clean :
rm -rf $(OBJS) $(TARGET) core
new :
$(MAKE) clean
$(MAKE)
CC= 컴파일에 사용할 컴파일러를 넣어준다.
LIBS= 사용하는 lib를 넣어준다.
INC= include 위치를 넣어준다.
CFLAGS= 컴파일에 사용할 플래그를 넣어준다.
SRCS= 컴파일할 소스를 넣어준다.
TARGET= 실행파일 이름을 넣어준다.
정적 라이브러리 만들기용 makefile
.SUFFIXES : .c .o
CC = gcc
AR = ar
INC = -I./include/
CFLAGS = -O2 -Wall $(INC)
ARFLAGS=rv
SRCS=userlib.c
OBJS=$(SRCS:.c=.o)
TARGET = libuser
all: $(SOURCES) $(TARGET)
$(TARGET) : $(OBJS)
$(AR) $(ARFLAGS) $(TARGET).a $(OBJS)
.c .o:
$(CC) $(CFLAGS) $< -o $@
clean :
rm -rf $(OBJS) $(TARGET).a
new :
$(MAKE) clean
$(MAKE)
AR= ar을 넣어준다. ar은 여러 개의 오브젝트를 하나의 아카이브로 묶어주는 작업을 한다.
ARFLAGS= ar 옵션을 넣어준다.
댓글
댓글 쓰기