什么时候应该使用gcc的-m32选项?

我正在编写一个程序,如果我在Suse 10 32位系统上编译而不添加-m32选项并在Suse 10 64位上执行它,它可以正常工作。

在这种情况下,我不需要添加-m32选项吗?

我们是否可以直接在64位系统上执行基于32位系统的程序而没有任何副作用? 或者是否需要更新或更改?

在64位操作系统上运行32位可执行文件没有问题(只要存在并找到32位动态库)。

-m32用于在编译器上编译32位对象,默认情况下配置为编译64位对象。

只要操作系统在64位操作系统上同时支持32位和64位程序(提示:并非所有操作,例如OpenBSD),只要您拥有所有32位依赖项,就不应该遇到任何问题。 。