[英]How to write specific rule for a target in makefile?
我知道標題很含糊,但我只是不知道如何簡單地描述我的問題。 如果需要,請進行編輯。
目前,我的makefile如下所示:
CC = g++
CFLAGS = -Wall -g
TARGET = foobar
SRC_FILES = foo.cpp bar.cpp main.cpp
OBJ_FILES := $(SRC_FILES:.cpp=.o)
$(TARGET): $(OBJ_FILES)
$(CC) $(CFLAGS) $^ -o $@
%.o: %.cpp %.h
$(CC) $(CFLAGS) -c $<
clean:
rm -rf *.o $(TARGET)
問題在於此結構要求main.cpp
具有main.h
頭文件,而我實際上沒有。 我該如何處理好呢?
GCC(也許還有Clang)可以為您建立一個依賴列表。 這樣,您可以簡單地從源文件(cpp)中創建目標文件:
depend: .depend
.depend: $(SRC_FILES)
rm -f ./.depend
$(CC) $(CFLAGS) -MM $^ -MF ./.depend;
include .depend
%.o: %.cpp
$(CC) $(CFLAGS) -c $<
您可能還會對makedepend
工具感興趣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.