【问题标题】:Makefile : Parameterize so that it compiles the highest numbered fileMakefile : 参数化,以便编译最高编号的文件
【发布时间】:2015-01-11 10:21:27
【问题描述】:

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

有没有办法做到这一点或类似的事情?

【问题讨论】:

  • 为什么要多个主入口点?
  • 像让目标依赖于$(firstword $(sort $(wildcard somepattern)))这样的事情可能接近你需要的,很难说因为你的问题中没有太多信息。跨度>
  • 如果你用更具体的例子更新你的问题,我也可以改进我的答案,使其更具体。

标签: c function makefile main


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    相关资源
    最近更新 更多