如何使用 GCC 生成 ELF 文件?

2023-12-26

我正在 Linux 操作系统上编写 C 和 C++ 代码,并且使用 GCC。完成我的代码后,我想生成一个 ELF 文件。我只能生成“a.out”文件,但我不需要它。如何获取 ELF 文件? ELF 文件出现的原因是什么?或者是否可以用这个程序生成这个文件?


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

在实践中,您将使用构建器程序(例如make) 驾车gcc命令。看这个答案 https://stackoverflow.com/a/20146082/841108.

默认输出文件为gcc仍被命名为a.out(由于历史原因)而是一个ELF文件。你真的想问gcc输出一个具有更奇特名称的可执行文件。

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

 gcc -Wall -g hello-world.c -o hello-world-bin

(order of arguments to gcc matters a lot!)

以及所产生的hello-world-bin is an ELF http://en.wikipedia.org/wiki/Executable_and_Linkable_Format可执行的。检查与

 file hello-world-bin

然后运行它

 ./hello-world-bin your arguments to it

稍后学习如何使用gdb调试器就可以了。

也可以看看this https://stackoverflow.com/a/20146082/841108 and that https://stackoverflow.com/a/7937638/841108答案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 GCC 生成 ELF 文件? 的相关文章

随机推荐