如何用GCC生成ELF文件?

问题描述 投票:0回答:1

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

gcc compilation executable elf file-format
1个回答
37
投票

编译器(即

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

在实践中,您将使用构建器程序(如

make
)来驱动
gcc
命令。请参阅此答案

gcc
的默认输出文件仍命名为
a.out
(出于历史原因),但它是一个ELF文件。而且您确实想要求
gcc
输出一个具有更奇特名称的可执行文件。

简单的示例,您编写了一个单文件

hello-world.c
程序。你可以用例如

来编译它
 gcc -Wall -g hello-world.c -o hello-world-bin

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

生成的

hello-world-bin
是一个 ELF 可执行文件。检查

 file hello-world-bin

然后运行它

 ./hello-world-bin your arguments to it

稍后学习如何使用

gdb
调试器。

另请参阅 thisthat 答案。

© www.soinside.com 2019 - 2024. All rights reserved.