Makefile:参数化,以便编译编号最高的文件

时间:2014-11-14 04:39:38

标签: c function makefile main

我正在构建一个make文件,我希望它能够容忍我有多个主要方法的事实,并且可能只考虑具有最高字母值的文件作为入口点。

有没有办法做到这一点或类似的东西?

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点,具体取决于您想要或需要做出决定的级别。以下是我所知道的三个:

  • 在实际构建内容之前,通过调用$(shell find | grep)$(shell grep -R ...)来识别要构建的文件(包含)或过滤掉不构建的文件(排除),找出要构建的内容。
  • 使用objdump分析目标文件并过滤掉除最后一个之外具有main()功能的目标文件。您可以使用$(shell sort ...)作为帮助者或$(sort ...)
  • 如果您知道哪些对象可以包含make,并且您使用的编译器/链接器组合允许声明可以被遮蔽,则可以使用$(sort)在对象列表$(lastword)上获取具有"最高名称"的对象,并在链接器文件列表中放置第一个(或最后一个,具体取决于链接器如何解析)。 / LI>