Build/Make
[Make] Makefile에서 내장 변수 $@, $<, $^ 의 의미
2024. 11. 21. 01:46반응형
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 |