MakeFile
# 프로젝트 이름 설정
PROJECT_NAME = yolov8_trt
# 디렉토리 설정
SRCDIR := src
OBJDIR := obj
BINDIR := bin
# 컴파일러 설정
CC := g++
# 컴파일 플래그 설정
CFLAGS := -std=c++11
CFLAGS += -I$(SRCDIR) -I/usr/local/cuda/include
CFLAGS += $(shell pkg-config --cflags opencv4)
# 라이브러리 설정
LIBS := -L/usr/local/cuda/lib64 -lcudart
LIBS += -lnvinfer -lnvinfer_plugin -lnvonnxparser
LIBS += $(shell pkg-config --libs opencv4)
# 소스 파일 설정
SRCS := $(wildcard $(SRCDIR)/*.cpp)
# 오브젝트 파일 설정
OBJS := $(patsubst $(SRCDIR)/%,$(OBJDIR)/%,$(SRCS:.cpp=.o))
# 타겟 설정
TARGET := $(BINDIR)/$(PROJECT_NAME)
# Phony 타겟 설정
.PHONY: all clean
# 기본 타겟
all: $(TARGET)
# 오브젝트 파일 빌드 규칙
$(OBJDIR)/%.o: $(SRCDIR)/%.cpp
@mkdir -p $(OBJDIR)
$(CC) $(CFLAGS) -c $< -o $@
# 최종 타겟 빌드 규칙
$(TARGET): $(OBJS)
@mkdir -p $(BINDIR)
$(CC) $(CFLAGS) $^ -o $@ $(LIBS)
# 클린업 규칙
clean:
rm -rf $(OBJDIR) $(BINDIR)
# 기본 규칙 비활성화
.SUFFIXES: