既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
SRC = $(wildcard ./foo/*.cpp)
上述用法的作用是搜索当前目录下“foo”文件夹下的所有以“.cpp”结尾的文件,搜索到的文件信息将以空格间隔生成文件名列表,并将该文件名列表返回给变量 SRC。
2.3 notdir函数
notdir 函数用于去掉文件信息中的目录信息,此函数经常和 wildcard 函数一起使用。
示例用法如下:
SRC = $(notdir $(wildcard ./foo/*.cpp))
上述用法用于去掉 wildcard 函数搜索结果中文件信息中的目录信息。
2.4 patsubst函数
patsubst 函数(即 pattern substitute)用于进行文件信息替换。
示例用法如下:
OBJ = $(patsubst %.c %.o $(SRC))
上述用法会将 SRC 所含文件中所有 .c 结尾的文件替换为以 .o 结尾的对应文件。
3 make命令的常见用法
3.1 同时开始多个编译任务(并行编译)
在使用 make 命令构建项目时,可以通过 -j 选项同时开始多个编译任务。
-j 选项的作用描述如下:
-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.
示例命令如下:
make -j4
运行上述命令构建项目时,可同时启动4个编译任务,因此减少了项目构建所需时间。
在使用 -j 选项构建项目时,有以下几点需要注意:
- 对于同时开始的编译任务数,需要根据构建机器的实际情况而定。为了不影响机器其他业务正常运行,通常将并发任务数设置为机器的 CPU 个数即可,例如某机器的 CPU 数量为4,则可将该选项设置为 -j4。而并发编译任务数最大一般可设置为机器 CPU 数量的2倍。机器的 CPU 数量可通过命令“cat /proc/stat | grep cpu[0-9] -c”查看;
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**