在makefile中`OBJECTS = $(SOURCES:.cpp = .o)`是什么意思

 www 发布于 2022-12-15 10:15

我正在阅读本教程 ,它有这样的内容

# File names
EXEC = run
SOURCES = $(wildcard *.cpp)
OBJECTS = $(SOURCES:.cpp=.o)    

.....
%.o: $(SRCPATH)/%.cpp $(INC)
    $(CC) $(CXXFLAGS) $(INCLUDES) -c $< -o $@

我不确定我是否理解该文档,如果有人可以解释最后两个声明,我将不胜感激。这是我与Makefile有关的三个问题

问题1:

之间有什么区别

 SOURCES = $(wildcard *.cpp)

 SOURCES = $(*.cpp)

它说第二种情况仅在.cpp文件存在的情况下有效,因为它们因此不起作用。我的问题是第一个为什么起作用?

问题2:什么'wildcard *'意思?最后的陈述OBJECTS = $(SOURCES:.cpp=.o) 是什么意思?

问题3:%。o被放置为目标是什么意思?请告诉我之间的差异 *.o%.o以及wildcard *.cpp

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有