1. 当VPATHvpath同时出现时,make会如何处理?

makefile专题:make中的路径搜索(下)

结论:
1) make首先在当前文件夹中搜索需要的文件;
2)如果失败:make**优先在vpath指定的文件夹中搜索目标文件,当vapth搜索失败时,转而搜索VPATH指定的文件夹**
makefile专题:make中的路径搜索(下)

2. 当使用vpath对同一个Pattern指定多个文件夹时,make会如何处理?

makefile专题:make中的路径搜索(下)

结论:
1)make首先在当前文件夹中搜索需要的文件
2)如果失败:make**自上而下的顺序搜索vpath指定的文件夹,当找到目标文件,搜索结束**
makefile专题:make中的路径搜索(下)

3. 通过VPATH指定搜索路径后,make如何决定目标文件的最终位置?

makefile专题:make中的路径搜索(下)

结论:
1)当app.out完全不存在时:make在当前文件夹下创建app.out
2)当src文件夹中存在app.out时:所有目标和依赖新旧关系不变,make不会重新创建app.out;当依赖文件被更新时,make在当前文件夹下创建app.out

4. 当依赖改变时,如何使得src下的app.out被更新?

解决方案:使用GPATH特殊变量指定目标文件夹GPATH=src
1)当app.out完成不存在时,make默认在当前文件夹创建app.out
2)当app.out存在于src,且依赖文件被更新时,make在src中创建app.out

5. 工程项目中的几点建议

  • 尽量使用vpath为不同文件指定搜索路径
  • 不要在源码文件夹中生成目标文件
  • 为编译得到的结果创建独立的文件夹
  • **避免VPATHGPATH特殊变量的使用

声明:此文章为本人在学习狄泰软件学院《十二月提升计划》所做的笔记,参考书籍《专业嵌入式软件开发》——李云,文章中包含狄泰软件资料内容和《专业嵌入式软件开发》资料内容,一切版权归狄泰软件《专业嵌入式软件开发》所有!

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-16
  • 2022-12-23
  • 2021-12-17
  • 2021-11-23
猜你喜欢
  • 2021-10-01
  • 2022-12-23
  • 2022-02-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案