繁体   English   中英

如何使用GCC生成ELF文件?

[英]How can I generate an ELF file with GCC?

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

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

实际上,您将使用构建器程序(如make )来驱动gcc命令。 看到这个答案

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

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

 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调试器。

另见这个那个答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM