gpt4 book ai didi

c++ - 制作 : pattern rule matching multiple extensions

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:14:40 25 4
gpt4 key购买 nike

我有几个扩展的重复模式规则(例如:cppcc):

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
@$(CXX) $(CPPFLAGS) -I. -o $@ -c $?

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cc
@$(CXX) $(CPPFLAGS) -I. -o $@ -c $?

有没有办法让一个模式规则在两个扩展上都匹配,而不是必须有两个规则?

最佳答案

不,您不能将这两个规则结合起来。所有先决条件都必须匹配。

但是您可以避免需要两次指定配方。

通过使用配方定义:

define COMPILE
@$(CXX) $(CPPFLAGS) -I. -o $@ -c $?
endef

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
$(COMPILE)

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cc
$(COMPILE)

或者通过使用循环和 eval 来定义配方(未经测试,我可能会遇到一些转义错误,但无论如何我更喜欢定义方法):

$(foreach prereq,cc cpp,$(eval $(OBJ_DIR)/%.o: $(SRC_DIR)/%.$(prereq) ; @$(CXX) $(CPPFLAGS) -I. -o $@ -c $?))

关于c++ - 制作 : pattern rule matching multiple extensions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27952558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com