Makefile如何确定编译器将创建的二进制格式?

时间:2015-02-18 23:02:26

标签: gcc makefile executable gas

Makefile是否有可能确定编译器所针对的二进制格式(即PE,ELF,Mach-O等)?也许通过运行带有某些选项的编译器或汇编程序?

或者我可以从操作系统中准确地确定这一点(通过运行uname -s或类似的东西)?

1 个答案:

答案 0 :(得分:2)

这就是为什么存在configure脚本的原因 - 也就是说,探测构建环境以确定不能直接以该语言提供的有用信息。

如果已经有一个autoconf宏来处理这个问题,我不会感到惊讶。但是,我没看。

实现所需内容的最简单方法是,首先使用要测试的编译器和编译器选项编译最简单的程序。然后,使用file命令查看此创建的文件类型。您可以在输出中使用sed等将其转换为您想要传递给实际编辑的任何符号或字符串。

如果file不符合您的口味,您可以选择编写自定义程序来检查输出文件以查看它是什么。