코딩
Makefile 만들기
코딩세상
2023. 3. 31. 08:36
Makefile 만들기
아래 같이 하면 빌드 완성이다. 아래 Makefile들은 so/a 파일들을 만들 수 있는 스크립트이다.
중요한 것은 INCLUDE폴더에는 *.h 파일들을 SRC_DIR 폴더에는 *.cpp 파일을 존재해야 한다.
CC = gcc
# C++ 컴파일러 옵션 CXXFLAGS = -Wall -O2 -fPIC -fexceptions -fpermissive -Wno-narrowing -pthread # 링커 옵션 LDFLAGS = -lstdc++ # 헤더파일 경로 INCLUDE = -I./include LIB_PATH = ./library # 소스 파일 디렉토리 SRC_DIR = ./source # 오브젝트 파일 디렉토리 OBJ_DIR = ./obj # 생성하고자 하는 실행 파일 이름 TARGET = libfoundation.so TARGET_A = libfoundation.a SRCS = $(notdir $(wildcard $(SRC_DIR)/*.cpp)) OBJS = $(SRCS:.cpp=.o) DEPS = $(SRCS:.cpp=.d) # OBJS 안의 object 파일들 이름 앞에 $(OBJ_DIR)/ 을 붙인다. DEPS = $(OBJECTS:.o=.d) $(shell mkdir -p $(OBJ_DIR)) all: main $(OBJ_DIR)/%.o : $(SRC_DIR)/%.cpp $(CC) $(CXXFLAGS) $(INCLUDE) -c $< -o $@ main : $(OBJECTS) $(CC) $(CXXFLAGS) $(OBJECTS) -o $(TARGET) -shared $(LDFLAGS) ar rc $(TARGET_A) $(OBJECTS) @cp $(TARGET_A) $(LIB_PATH)/$(TARGET_A) .PHONY: clean all clean: rm -f $(OBJECTS) $(DEPS) $(TARGET) -include $(DEPS) |
#Makefile #gcc #빌드 #리눅스