Для .cpp
списка файлов должно работать следующее:
CPP_SRCS := \
$(wildcard <CPP_FILES_PATH_HERE>/*.cpp)
В соответствии с комментарием liliscent , следующее должно выполнить работу для .o
и .d
files:
OBJS := \
$(patsubst %.cpp, %.o, $(CPP_SRCS))
CPP_DEPS := \
$(patsubst %.cpp, %.d, $(CPP_SRCS))
Однако это работает, если вы хотите, чтобы файлы .cpp
, .o
и .d
находились в одном каталоге.Если они должны иметь разные каталоги, у вас есть два решения:
Первое решение:
Я рекомендую использовать это решение, когда пути к файлам .cpp
, .o
и .d
имеютобщий префикс:
OBJS := \
$(subst <CPP_FILES_PATH_HERE>,<O_FILES_PATH_HERE>, $(patsubst %.cpp, %.o, $(CPP_SRCS)))
CPP_DEPS := \
$(subst <CPP_FILES_PATH_HERE>,<D_FILES_PATH_HERE>, $(patsubst %.cpp, %.d, $(CPP_SRCS)))
Второе решение:
Я рекомендую использовать это решение, когда пути к файлам .cpp
, .o
и .d
совершенно разные:
OBJS := \
$(addprefix <O_FILES_PATH_HERE>, $(notdir $(CPP_SRCS:.cpp=.o)))
CPP_DEPS := \
$(addprefix <D_FILES_PATH_HERE>, $(notdir $(CPP_SRCS:.cpp=.d)))