当前位置:  开发笔记 > 编程语言 > 正文

GNU make和对象列表

如何解决《GNUmake和对象列表》经验,为你挑选了0个好方法。

我有大约10个带有标头(.h)的源文件(.c)。只有两个源文件(.c)链接到可执行文件(ELF)中,并包含主要功能。大多数文件被编译为与可执行文件(.o)和(重新)使用(静态链接)的对象。

我试图定义一个通用规则来构建所有对象:

%.o : %.c
    $(CC) $(CCFLAGS) -c -o $@ $<

这对于编译成对象的源代码非常有用。每次添加新的源文件时,我都不必担心更新make文件。

但是我不知道为构建可执行文件创建规则的最佳方法是什么?

exec1 : object1.o object2.o object3.o
    call the linker
exec2 : object1.o object2.o object4.o object5.o
    call the linker

这将起作用;但是,每当我包括一个新的标头(foo.h)时,我都还需要记住为此规则更新对象列表(添加foo.o)。

make有什么方法可以自动解析给定目标的必需对象(也许基于所包含的头文件吗?)?

有没有更好的方法来定义可执行文件的目标?

请注意,我不能使用通配符,因为并非所有可执行文件都需要所有对象。还是链接程序可以删除多余的对象?

谢谢!

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有