.SUFFIXES : .c .o
CC = gcc
INC =
LIBS =
CFLAGS = -g $(INC) -fPIC <- -fPIC 추가
OBJS = read.o write.o
SRCS = read.c write.c
TARGET = libio.so.1 <- libio.so.1이 최종 파일
all : $(TARGET)
$(TARGET) : $(OBJS)
$(CC) -shared -Wl,-soname,$@ -o $@ $(OBJS)
dep :
gccmakedep $(INC) $(SRCS)
% gcc -fPIC -c read.c <- -fPIC을 추가해서 컴파일한다.
% gcc -fPIC -c write.c
% gcc -shared -Wl,-soname,libio.so.1 -o libio.so.1 read.o write.o
ldconfig -v
LD_LIBRARY_PATH
% gcc -c test.c
% gcc -o test test.o -L. -lio <- 현재 디렉토리에 있다고 가정
.SUFFIXES : .c .o
CC = gcc
INC = <- include 되는 헤더 파일의 패스를 추가한다.
LIBS = <- 링크할 때 필요한 라이브러리를 추가한다.
CFLAGS = -g $(INC) <- 컴파일에 필요한 각종 옵션을 추가한다.
OBJS = <- 목적 파일의 이름을 적는다.
SRCS = <- 소스 파일의 이름을 적는다.
TARGET = libio.a
all : $(TARGET)
$(TARGET) : $(OBJS)
$(AR) rcv $@ $(OBJS)
ranlib $@
dep :
gccmakedep $(INC) $(SRCS)
% ar rcv libio.a read.o write.o
a - read.o <- 라이브러리에 추가 (add)
a - write.o
% ranlib libio.a <- libio.a의 색인(index)을 생성
.SUFFIXES : .cc .o
CXX = g++
INC = <- include 되는 헤더 파일의 패스를 추가한다.
LIBS = <- 링크할 때 필요한 라이브러리를 추가한다.
CXXFLAGS = -g $(INC) <- 컴파일에 필요한 각종 옵션을 추가한다.
OBJS = <- 목적 파일의 이름을 적는다.
SRCS = <- 소스 파일의 이름을 적는다.
TARGET = <- 링크 후에 생성될 실행 파일의 이름을 적는다.
all : $(TARGET)
$(TARGET) : $(OBJS)
$(CXX) -o $@ $(OBJS) $(LIBS)
dep :
gccmakedep $(INC) $(SRCS)
.SUFFIXES : .c .o
CC = gcc
INC = <- include 되는 헤더 파일의 패스를 추가한다.
LIBS = <- 링크할 때 필요한 라이브러리를 추가한다.
CFLAGS = -g $(INC) <- 컴파일에 필요한 각종 옵션을 추가한다.
OBJS = <- 목적 파일의 이름을 적는다.
SRCS = <- 소스 파일의 이름을 적는다.
TARGET = <- 링크 후에 생성될 실행 파일의 이름을 적는다.
all : $(TARGET)
$(TARGET) : $(OBJS)
$(CC) -o $@ $(OBJS) $(LIBS)
dep :
gccmakedep $(INC) $(SRCS)
.SUFFIXES : .c .o
CC = gcc
CFLAGS = -O2 -g
OBJS1 = main.o test1.o <- 각각의 매크로를 정의
OBJS2 = main.o test2.o
OBJS3 = main.o test3.o
SRCS = $(OBJS1:.o=.c) $(OBJS2:.o=.c) $(OBJS3:.o=.c)
all : test1 test2 test3 <- 요기에 주의
test1 : $(OBJS1)
$(CC) -o test1 $(OBJS1)
test1 : $(OBJS2)
$(CC) -o test2 $(OBJS2)
test1 : $(OBJS3)
$(CC) -o test3 $(OBJS3)
dep :
gccmakedep $(SRCS)
.SUFFIXES : .c .o
CC = gcc
CFLAGS = -O2 -g
all : DataBase Test <- 요기에 집중.
DataBase:
cd db ; $(MAKE) <- db 로 이동해서 make 실행
Test:
cd test ; $(Make) <- db 로 이동해서 make 실행