Can*_*sız 5 executable gcc file-format compilation elf
我正在Linux OS上编写C和C++代码,我正在使用GCC.完成我的代码后,我想生成一个ELF文件.我只能生成"a.out"文件而我不需要它.我怎样才能获得ELF文件?ELF文件出现的原因是什么?或者是否可以使用此程序生成此文件?
Bas*_*tch 16
编译器(即gcc
或g++
)将调用ld
生成ELF可执行文件的链接器().
实际上,您将使用构建器程序(如make
)来驱动gcc
命令.看到这个答案.
默认输出文件gcc
仍然被命名a.out
(由于历史原因),但是是ELF文件.而你真的想要gcc
输出一个更具花哨名称的可执行文件.
简单的例子,您编写单个文件hello-world.c
程序.你可以用eg编译它
gcc -Wall -g hello-world.c -o hello-world-bin
Run Code Online (Sandbox Code Playgroud)
(gcc
很多事情的争论顺序!)
并且生成的hello-world-bin
是ELF可执行文件.检查
file hello-world-bin
Run Code Online (Sandbox Code Playgroud)
然后运行它
./hello-world-bin your arguments to it
Run Code Online (Sandbox Code Playgroud)
稍后,学习如何gdb
在其上使用调试器.