C++ I';我试图重新学习GCC C或C++;请帮忙

C++ I';我试图重新学习GCC C或C++;请帮忙,c++,linux,gcc,64-bit,x11,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上使用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
我已经在谷歌上搜索到了这个错误——查看了几篇帖子,并确保我已经安装了buildessential,而且确实如此

和xlib.h也已安装

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

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

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

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


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

显示一些源代码,最重要的是显示真正的命令行。使用
-H
选项来
gcc
了解include文件在哪里搜索谢谢-我想出来了-我必须删除旧的“o”文件,然后我在MAKE文件中放入CFLAGS-m64只是为了更好的测量,然后再次运行MAKE,一切都很好-sudo MAKE安装-全部完成-谢谢!