반응형
https://wh00300.tistory.com/193?category=962385
CC:=g++
CFLAGS=-Wall -g
TARGET=bin/main
SRC_DIRS=src
SRCS=$(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp))
OBJS=$(SRCS:.cpp=.o)
run: all
./$(TARGET)
all: clean $(OBJS)
$(CC) -o $(TARGET) $(OBJS) $(CFLAGS)
clean:
rm -f $(OBJS)
rm -f $(TARGET)
c++를 컴파일하기 위한 코드이다. 실행파일은 bin 폴더에 들어가도록 했으며, source code는 src 폴더에 존재한다.
SRCS=$(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp))
이 코드는 src 폴더 밑에 있는 모든 cpp파일을 찾아서 SRCS에 저장한다.
OBJS=$(SRCS:.cpp=.o)
이 코드에서는 SRCS에 저장된 모든 cpp파일에 대해서 .o로 바꾸어 OBJS에 저장한다.
이 시점에서 자동으로 object파일이 실제로 생성됐는데, 어떻게 가능한 것인지 궁금했다.
stackoverflow에서 그 해답을 찾을 수 있었다.
https://stackoverflow.com/questions/37163481/listing-cpp-or-o-in-makefile
반응형
'tech documents > memo' 카테고리의 다른 글
github 특정 파일 모든 commit에서 삭제 하기 (0) | 2022.03.02 |
---|---|
Ubuntu에서 폰트 설치하는 방법 (0) | 2022.02.11 |
Alacritty 터미널 설치하기 (0) | 2022.02.07 |
코드 조각모음 (0) | 2022.01.20 |
댓글