如何在Linux上生成ELF文件?
问题描述:
我研究了很多关于网络上的ELF文件,但我找不到我想要的。我正在Linux操作系统上编写C和C++代码,我正在使用gcc和Kate程序。完成我的代码后,我想生成ELF可执行文件。我只能生成“a.out”文件,我不需要它。我如何获得ELF文件? ELF文件是由什么发生的?或者是否有可能用这个程序生成这个文件?如何在Linux上生成ELF文件?
答
编译器(即gcc
或g++
)将调用产生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-bin
是ELF可执行文件。请与
file hello-world-bin
然后用
./hello-world-bin your arguments to it
后来运行它,学习如何使用调试器gdb
上。
+1
非常具有描述性和有用的评论。我非常了解。 –
a.out是一个ELF文件。 –
可能重复[创建ELF而不是a.out](http://*.com/questions/5565594/creating-elf-instead-of-a-out) –