我正在尝试重新学习GCC C或C ++编译帮助

时间:2015-03-17 16:53:30

标签: c++ linux gcc 64-bit x11

这里有两个问题:

根据这个在其他地方的帖子 - “必须在64位版本的Linux上使用GNU gcc编译一个32位应用程序。

幸运的是,gcc手册页将我引导至'-m32'和'-m64'选项。这些选项分别为32位或64位环境生成代码。

32位环境将int,long和指针设置为32位,并生成在任何i386系统上运行的代码。

64位环境将int设置为32位,long指向64位,并为AMD的x86-64架构生成代码。“

我有这个C程序我修改了添加我想要和需要的功能 - 现在我已经从32位Linux迁移到64位Linux这个程序不再适用于64位Linux。

在我超越自己之前 -

问题:我现在是否必须使用m64将其重新编译为64位程序才能使其正常工作?

当我用-m32重新编译它时,我也得到了一个错误。

使用Xlib.h

/usr/include/X11/Xlib.h:38:23: fatal error: sys/types.h: No such file or directory

我已经搜索过这个错误 - 查看几个帖子并确保我已经安装了build-essential,而且确实如此。

和xlib.h也已安装。

这是在寻找引用X11或其他地方的“sys / types.h”吗? 我也不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

  

问题:我现在是否必须使用m64将其重新编译为64位程序才能使其正常工作?

如果您已有32位可执行文件,则应该能够在64位Linux上运行它。如果已安装所需的32位系统库。

  

当我使用-m32重新编译它时,我也会收到错误。

这很可能意味着您没有安装32位开发包。