编译在32位使

问题描述:

我编译程序以汇编代码的错误,特别是在32位的形式,并且当我编译没有像这样的-m32标志...:编译在32位使

gcc -S examples.c 

它编译精细。我这样做然而,当...

gcc -S -m32 examples.c 

我在我的包括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. 

这是怎么回事?

+0

哪个操作系统? Ubuntu的? – teppic 2013-03-12 00:28:29

+0

是的,我正在使用Ubuntu。 – SwiftCore 2013-03-12 00:30:59

+2

您可能没有安装'ia32-libs'。你可以运行'sudo apt-get install ia32-libs'吗?顺便说一句'predefs.h'文件来自'libc6-dev'。确保包装已安装。 – Tuxdude 2013-03-12 00:31:52

您错过了32位C库和标头。这些在默认情况下并未安装在64位Ubuntu中,但您可以通过运行(与C++一起)运行:

$ sudo apt-get install g++-multilib 
+0

这项工作适用于GCC吗? – SwiftCore 2013-03-12 00:37:52

+0

@SwiftCore:是的 – teppic 2013-03-12 00:39:25