簡體   English   中英

如何在makefile中為目標編寫特定規則?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM