我正在构建一个 make 文件,并且我希望它能够容忍我有多个主要方法的事实,并且可能只考虑具有最高字母值的文件作为入口点。 p>
有没有办法做到这一点或类似的事情?
最佳答案
有几种方法可以做到这一点,具体取决于您想要或需要做出决定的级别。以下是我所知道的三个:
- 在实际构建内容之前,通过调用
$(shell find | grep)
或$(shell grep -R ...)
来识别文件,了解要构建的内容仅构建(包含)或过滤掉不构建的文件(排除)。 - 使用
objdump
分析目标文件并过滤掉除最后一个之外具有main()
函数的目标文件。您可以使用$(shell sort ...)
作为帮助器或$(sort ...)
。 - 如果您知道哪些对象可以包含
make
,并且您使用的编译器/链接器组合允许可以隐藏的弱声明,那么您可以使用$(sort)
在对象列表中,$(lastword)
获取具有“最高名称”的对象,并将其放在第一个(或最后一个,具体取决于链接器的方式)解析)在链接器文件列表中。
关于c - 生成文件: Parameterize so that it compiles the highest numbered file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26922996/