如何使用GCC生成ELF文件?

时间:2014-02-10 22:31:06

标签: gcc compilation executable elf file-format

我正在Linux OS上编写C和C ++代码,我正在使用GCC。完成我的代码后,我想生成一个ELF文件。我只能生成“a.out”文件而我不需要它。我怎样才能获得ELF文件? ELF文件出现的原因是什么?或者是否可以使用此程序生成此文件?

1 个答案:

答案 0 :(得分:15)

编译器(即gccg++)将调用生成ELF可执行文件的链接器(ld)。

实际上,您将使用构建器程序(如make)来驱动gcc命令。请参阅this answer

gcc的默认输出文件仍然名为a.out(由于历史原因),但是是ELF文件。而你真的想要gcc输出一个更具花哨名称的可执行文件。

简单的例子,您编写单个文件hello-world.c程序。您可以使用例如

进行编译
 gcc -Wall -g hello-world.c -o hello-world-bin

gcc的参数顺序非常重要!)

,生成的hello-world-binELF可执行文件。检查

 file hello-world-bin

然后用

运行它
 ./hello-world-bin your arguments to it

稍后,了解如何在其上使用gdb调试器。

另请参阅thisthat个答案。