C++ 如何将 x64 位应用程序转换为 x86

标签 c++ build x86 64-bit

我有几个关于 x64 和 x86 系统的问题

我在 qt 4.7 中编写了一个 C++ 应用程序,通常我将 int 用于整数等。

如果我想将此应用程序转换为 x64 位,我应该怎么做?

我应该只使用不同的编译器选项构建它还是应该更改我的代码中的某些内容

另一个问题,如果我下载一个开源应用程序并在 Linux 中构建它,它是 x64 还是 x86 的架构,我的意思是如果我在 x64 位 Linux 中构建源代码,我将得到一个 x64 应用程序,如果我构建x86 位 Linux 中的源代码我将获得一个 x86 应用程序

最佳答案

构建的类型应该取决于您正在构建的编译器和架构。

也就是说,应该(应该)编写代码以便支持具有不同位深度的构建。

例如,如果您使用 long 声明整数变量,则变量的大小会有所不同(取决于体系结构)。如果您改为使用 std::int32_tstd::int64_t 声明它,则在架构之间切换时大小将保持不变。

除了位深度,您还应该确保任何依赖于字节顺序的代码继续正确运行(除了位深度和字节顺序之外,可能还有其他需要注意的因素)。

总而言之,您可能只需在新架构上重新编译您的代码就可以正常工作,或者您可能需要进行一些编辑。我想这取决于您的代码的用途和编写方式。

关于C++ 如何将 x64 位应用程序转换为 x86,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14218593/

相关文章:

c - 不同大小的C指针中的x86 mov指令

x86 - 为什么 cmp 0x84,0x30 会触发溢出标志?

c++ - 在 Armadillo C++ 中为矩阵类型变量获取键盘输入

c++ - 如何使用 C++ 运行批处理文件?

c++ - 在不使用 graphics.h 的 pieslice() 的情况下,在 C 中生成一个 "pieslice"

Xcode 从命令行构建应用程序

c - 使用 x86 ASM 设置存储在地址的值

c++ - 构建 luabind 时出现错误 C2665

ios - expo EAS build (iOS) 在 Pod 安装步骤中失败 (SDK45 & 46)

perl - 我可以使用基于 ExtUtils::MakeMaker 的构建系统 "out of tree"构建 Perl 模块吗?