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 #빌드 #리눅스
'코딩' 카테고리의 다른 글
Windows 10의 윈도우 캡쳐 API (0) | 2023.06.20 |
---|---|
Console 숨기기(백그라운드 실행) (0) | 2023.04.07 |
MFC에서 오류나는 것 받아 볼 수 있는 방법 (0) | 2023.03.17 |