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



这里有两个问题:

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

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

32位环境将int、long和pointer设置为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"还是在其他地方?我也不知道如何解决这个问题。

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

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

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

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

最新更新