makefile - 规则未用先决条件 % 替换目标 %
问题描述
该项目实际上有大量不同的源文件所在的目录,所以我简化了一点。
SOURCES 变量包含:
src/main.cpp src/test.cpp
目标规则 $(BUILD_PATH)%.o 扩展为:
linux_build/test.o
所以我试图制定一个接受目标的规则,查看“nodir”部分并尝试将其与 SOURCES 列表中的相应条目匹配。然后它使用它作为先决条件:
$(BUILD_PATH)%.o: $(strip $(foreach path, $(SOURCES), $(if $(findstring %.cpp,$(path)), $(path),)))
$(CL) $(CL_FLAGS) $(INC) $< -o $@
似乎不起作用的是“%.cpp”中的%。我在这里做错了什么?
解决方案
推荐阅读
- node.js - 将所有请求通过管道传输到特定端口 - 节点 js 应用程序
- java - 如何使 Scanner 用户输入对应于 if 语句
- javascript - 有没有办法监控导致重复请求的双击?
- linux - 尝试访问超出设备 LINUX 的末尾
- sql - 带参数的 sqlplus 假脱机文件
- sql - SAP HANA 随机数生成器
- python - WxPython 选择字段仅在 Mac 上不可见
- python - 如何检索 Spotify 上的所有专辑对象?
- python - Nuitka TypeError 类型“生成器”的编译器错误对象没有 len()
- canvas - 在paperjs中以形状显示边界矩形