Makefile
蓝鲸123
做更好的自己
展开
-
Makefile $<、$@、$^
详细参考:https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.htmlTARGET = pgOBJS = main.oCC = gccCFLAGS = -Wall -D_GNU_SOURCELDFLAGS = -pthreadall: $(TARGET)$(TARGET): $(OBJS) $(CC) $(OBJS) $(LDFLAGS) -o $(TARGET)%.o: %.c $(原创 2021-04-15 21:32:36 · 168 阅读 · 0 评论 -
makefile里PHONY的相关介绍
Phony TargetsPHONY 目标并非实际的文件名:只是在显式请求时执行命令的名字。有两种理由需要使用PHONY 目标:避免和同名文件冲突,改善性能。如果编写一个规则,并不产生目标文件,则其命令在每次make 该目标时都执行。例如: clean: rm *.o temp因为"rm"命令并不产生"clean"文件,则每次执行"make clean"..转载 2019-01-18 15:32:17 · 744 阅读 · 0 评论 -
makefile下$^,$@,$?,$<,$(@D),$(@F)定义使用详解
变量定义:$^所有的依赖目标的集合。以空格分隔。如果在依赖目标中有多个重复的,那个这个变量会去除重复的依赖目标,只保留一份。$@表示规则中的目标文件集。在模式规则中,如果有多个目标,那么,"$@"就是匹配于目标中模式定义的集合$?所有比目标新的依赖目标的集合。以空格分隔。$<依赖目标中的第一个目标名字。如果依赖目标是以模式(即"%")定义的,那么"$<"将是符合模...转载 2019-01-18 15:36:41 · 6127 阅读 · 0 评论 -
Makefile中的wildcard用法
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN…) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符的展开和...转载 2019-01-18 15:42:57 · 277 阅读 · 0 评论 -
cmake 常用命令,生成可执行文件
#项目的名称PROJECT(SAMPLE)#cmake 的版本cmake_minimum_required(VERSION 2.4)# 查找是否安装了OpenCVFIND_PACKAGE(OpenCV REQUIRED )IF(${OpenCV_VERSION} VERSION_LESS 3.4.5) MESSGAE(FATAL_ERROR “OPENCV version ...原创 2019-03-01 11:59:27 · 3300 阅读 · 0 评论