标题更改时用于构建简单C项目重新编译的示例makefile

蔬菜

是否有人拥有可以执行以下操作的完整makefile:

  1. 如果HEADER文件更改,则重建项目
  2. cpp文件在makefile中列出
  3. 头文件未在makefile中列出
  4. 头文件允许使用与cpp文件不同的名称
  5. 一些cpp文件没有头文件

我已经看到了有关说明如何使make工具了解标头依赖性的说明,但是这些说明中没有一个提供了与实际示例相似的内容。一个简单的示例如下:main.cpp C1.cpp C1.h C2.cpp C2.h

贝塔
CXX = g++

OBJECTS := main.o C1.o C2.o

all: $(OBJECTS)

%.o : %.cpp
    $(CXX) $(CPPFLAGS) -Wall -MMD -c $< -o $@

-include *.d

编辑:正如TobySpeight所指出的,如果您构建目标文件,重命名或删除前提条件源文件或头文件之一,然后尝试重建目标文件,则此方法将无效;.d文件仍将需要缺少的文件,并且构建将失败。我忽略了处理这种情况的内容:

%.h: ;
%.cpp: ;

(这是有效的,但很粗糙。更精确的方法是在%.o规则中放入一些sed命令,以便向.d文件中添加特定的空规则,每个先决条件都需要一个空规则,但是sed命令很丑陋,上面的方法是在几乎所有情况下都足够好。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Makefile如何知道文件已更改然后重新编译?

来自分类Dev

从Visual Sourcesafe重新编译项目的旧版本

来自分类Dev

更改时,CMake不会重新编译源文件吗?

来自分类Dev

如何获得货物以自动重新编译更改的文件?

来自分类Dev

重新编译多次

来自分类Dev

更改Makefile标志时如何强制重新编译?

来自分类Dev

C / C ++编译。在项目的简单Makefile上遇到麻烦

来自分类Dev

在C ++中更改的.h文件不需要重新编译吗?

来自分类Dev

源文件更改导致重新编译项目的大部分内容

来自分类Dev

更改功能后重新编译项目中的c ++源文件

来自分类Dev

XCTest:如果仅对测试目标进行更改,如何防止Xcode不必要地重新编译项目

来自分类Dev

React Webpack捆绑器不会在文件更改时重新编译

来自分类Dev

标题更改时用于构建简单的c项目重新编译的示例makefile

来自分类Dev

Netbeans JavaScript项目未重新编译

来自分类Dev

用于Java的makefile,仅在文件更改时重新编译

来自分类Dev

重新编译内核以更改堆栈大小

来自分类Dev

避免使用makefile进行不必要的重新编译

来自分类Dev

重新编译多次

来自分类Dev

重新编译未更改的文件

来自分类Dev

对数据,包含或布局进行更改时,gulp-assemble和gulp-watch不重新编译站点

来自分类Dev

头文件更改时无法重新编译Makefile

来自分类Dev

当源未更改时,makefile避免重新编译

来自分类Dev

Makefile重新编译所有内容

来自分类Dev

更改功能后重新编译项目中的c ++源文件

来自分类Dev

标头中的更改不会导致使用makefile重新编译

来自分类Dev

更改.c文件的注释时,scons仍会重新编译吗?

来自分类Dev

强制使用dotnet构建重新编译项目

来自分类Dev

C Makefile - 仅重新编译更改的文件

来自分类Dev

重新编译内核的简单方法是什么?

Related 相关文章

  1. 1

    Makefile如何知道文件已更改然后重新编译?

  2. 2

    从Visual Sourcesafe重新编译项目的旧版本

  3. 3

    更改时,CMake不会重新编译源文件吗?

  4. 4

    如何获得货物以自动重新编译更改的文件?

  5. 5

    重新编译多次

  6. 6

    更改Makefile标志时如何强制重新编译?

  7. 7

    C / C ++编译。在项目的简单Makefile上遇到麻烦

  8. 8

    在C ++中更改的.h文件不需要重新编译吗?

  9. 9

    源文件更改导致重新编译项目的大部分内容

  10. 10

    更改功能后重新编译项目中的c ++源文件

  11. 11

    XCTest:如果仅对测试目标进行更改,如何防止Xcode不必要地重新编译项目

  12. 12

    React Webpack捆绑器不会在文件更改时重新编译

  13. 13

    标题更改时用于构建简单的c项目重新编译的示例makefile

  14. 14

    Netbeans JavaScript项目未重新编译

  15. 15

    用于Java的makefile,仅在文件更改时重新编译

  16. 16

    重新编译内核以更改堆栈大小

  17. 17

    避免使用makefile进行不必要的重新编译

  18. 18

    重新编译多次

  19. 19

    重新编译未更改的文件

  20. 20

    对数据,包含或布局进行更改时,gulp-assemble和gulp-watch不重新编译站点

  21. 21

    头文件更改时无法重新编译Makefile

  22. 22

    当源未更改时,makefile避免重新编译

  23. 23

    Makefile重新编译所有内容

  24. 24

    更改功能后重新编译项目中的c ++源文件

  25. 25

    标头中的更改不会导致使用makefile重新编译

  26. 26

    更改.c文件的注释时,scons仍会重新编译吗?

  27. 27

    强制使用dotnet构建重新编译项目

  28. 28

    C Makefile - 仅重新编译更改的文件

  29. 29

    重新编译内核的简单方法是什么?

热门标签

归档