c++ - Makefile文件修改后,编译程序是否需要重新clean后,编译?

 江南西道longge 发布于 2022-11-07 20:29

Makefile文件修改后,编译程序是否需要重新clean后,编译?

可否从Makefile的工作原理上剖析一下 ,是否每次都需要对工程代码,修改->make clean->make -j

1 个回答
  • Makefile从原理上说就是一堆依赖关系:

    target : dependencies
        action
    

    简单说就是,make会检查dependencies和target的新旧,如果target比较旧,那么就执行action。
    对于一个典型的程序而言,target大多是可执行程序或者目标文件,dependencies大多是源代码(也许还有头文件之类),action大多是编译命令,比如gcc -o $@ $^,Makefile本身倒是很少会出现在这种依赖关系当中。
    从这个角度看,你改动了Makefile对于target本身有可能是没有影响的,重新make不一定有必要,但是有可能你对Makefile的改动造成了依赖关系的变化,这种情况下你可能需要重来一遍。

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