32位编译出现错误

Swi*_*ore 4 c linux ubuntu gcc

我正在将程序编译为汇编代码,特别是 32 位形式,当我在没有 -m32 标志的情况下进行编译时,如下所示......:

gcc -S examples.c
Run Code Online (Sandbox Code Playgroud)

它编译得很好。然而当我这样做时...

 gcc -S -m32 examples.c
Run Code Online (Sandbox Code Playgroud)

我的 include stdlib.h (由于它没有显示在预览窗口中,所以格式被删除)行出现错误,如下所示:

In file included from /usr/include/stdlib.h:25:0,
             from examples.c:1:
/usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directory
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

tep*_*pic 8

您缺少 32 位 C 库和头文件。默认情况下,这些未安装在 64 位 Ubuntu 中,但您可以通过运行以下命令来安装(与 C++ 一起):

$ sudo apt-get install g++-multilib
Run Code Online (Sandbox Code Playgroud)