c - 生成文件: Parameterize so that it compiles the highest numbered file

标签 c function makefile program-entry-point

我正在构建一个 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/

相关文章:

javascript - 使用字符串参数调用 javascript 函数

Contiki os MQTT

c - 返回(0)的使用

c++ - 在 C/C++ 中获取大的随机数

r - 尽管在函数外工作,ggplot 在函数内仍无法正常工作 - R

c++ - 如果没有使用带有虚函数的类,是否会生成虚函数表?

c++ - 项目中可用的本地头文件,但 make 给出 No such file or directory 错误

makefile - 在处理完文件中的所有目标后,如何编写一个 makefile 来运行 shell 命令?

c++ - 为什么这个makefile在 'make clean'上执行一个目标

c - c中的内存泄漏错误