我正在 Linux 操作系统上编写 C 和 C++ 代码,并且使用 GCC。完成我的代码后,我想生成一个 ELF 文件。我只能生成“a.out”文件,但我不需要它。如何获取 ELF 文件? ELF 文件是由什么生成的?
编译器(即
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
调试器。