c - 使用 GCC 生成 a.out 文件格式

标签 c gcc compilation executable

如何在 x86 架构上使用 GCC 生成 a.out 文件格式?

NASM我可以使用 -f 标志轻松地做到这一点,例如:

nasm -f aout start.asm
objdump -a start.o

start.o:     file format a.out-i386-linux
start.o

在 Linux 上,编译 .c 文件会生成一个 ELF 目标文件。我如何使用 GCC 生成 a.out 文件?

最佳答案

要使用 gcc 生成 a.out 格式,需要告知链接器这样做。由于 -Wl 标志,您可以通过从 gcc 传递标志来做到这一点。

以下是您要为 a.out 格式做的事情:

gcc -Wl,--oformat=a.out-i386-linux file.c -o file.out

您还可以通过键入显示所有支持的格式:

objdump -i

关于c - 使用 GCC 生成 a.out 文件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8303536/

相关文章:

c - 如何将 ./a.out 的结果存储到文本文件

objective-c - 什么时候在 Objective-C 方法中使用可变参数是合适的?

c# - 这段 C# 代码如何转换为它的 C 版本?

c++ - 在 C/C++ 中快速实现/逼近 pow() 函数

创建一个函数来复制 n 个字符,如 C 中的 strcpy

Gcc 裸属性留下一些尾随函数序言 asm 指令

c++ - GCC 和去虚拟化内联

c++ - 如何使用C++ Boost库中的for_each?

java - JVM 是否使用 kotlinc 来实现 Kotlin?

opencv - 在 Ubuntu/Linux 上用 C++ 编译 OpenCV 代码的 Makefile