Makefile %.o: %.cpp pattern

2022. 9. 29. 16:48Programming

    목차
반응형
SRC = a/a.cpp b/b.cpp c/c.cpp
BASE_DIR=./src
OBJ = $(patsubst %.cpp, $.o, $(SRC))
OBJS = $(addprefix $(BASE_DIR)/, $(OBJ))

%.o: %.cpp
	g++ -std=c++17 -O0 -o $@ -c $^ -I /opt/homebrew/alib/include
   
target: $(OBJS)
	g++ -std=c++17 -O0 -o $@ -c $^ -lpthread

위 example에서는 target에 의존을 $(OBJS)로 선언했습니다. 

$(OBJS)는 object file들의 list임을 알 수 있습니다. 

  • ./src/a/a.o ./src/b/b.o ./src/c/c.o

각 object file들의 build를 수행하는 패턴이 "%.o: %.cpp" 입니다.

모든 object 파일들은 위 패턴으로 흘러가서 .o 파일을 생성하기 위해 빌드를 수행하게 됩니다. 

반응형

'Programming' 카테고리의 다른 글

오픈소스 라이센스  (0) 2022.12.13
cmake 옵션(option) 사용  (0) 2022.09.27
build shared lib on macOS  (0) 2022.09.27
맥에서 boost 설치 및 위치 확인  (0) 2022.09.22
gtest 사용  (0) 2022.09.21