반응형

1. $@

의미: 현재 **타겟(target)**의 이름을 나타냅니다.

사용 예:

$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp
    $(CXX) $(CXXFLAGS) -c $< -o $@


여기서 $@는 현재 타겟 파일인 $(BUILD_DIR)/%.o를 가리킵니다.
예: $(BUILD_DIR)/main.o, $(BUILD_DIR)/example.o 등.

2. $<

의미: 현재 타겟의 첫 번째 종속성(dependency) 파일을 나타냅니다.
사용 예:

$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp
    $(CXX) $(CXXFLAGS) -c $< -o $@


여기서 $<는 현재 종속성 파일인 $(SRC_DIR)/%.cpp를 가리킵니다.
예: $(SRC_DIR)/main.cpp, $(SRC_DIR)/example.cpp 등.

3. $^

의미: 타겟의 모든 종속성 파일 목록을 나타냅니다.
사용 예:

$(TEST_EXEC): $(OBJECTS) $(TEST_OBJECTS)
    $(CXX) $(CXXFLAGS) $^ -o $@ $(GTEST_LIB)


여기서 $^는 모든 종속성인 $(OBJECTS)와 $(TEST_OBJECTS)를 나타냅니다.
예: build/main.o build/example.o build/example_test.o.

 

4. $*

의미: 패턴 매치에서 확장된 **기본 이름(base name)**을 나타냅니다.
사용 예:

$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp
    echo Compiling $*


여기서 $*는 패턴 매치에서 %에 해당하는 이름을 나타냅니다.
예: main 또는 example.

반응형

'Build > Make' 카테고리의 다른 글

[Make] Makefile 기본 개념  (2) 2024.11.21
Makefile (MK 파일) 기본 문법 - 1  (0) 2022.04.27